Default gateway, или шлюз по умолчанию, отправляет трафик за пределы локальной сети. В Linux текущий шлюз смотрят командами ip route show default и ip -6 route show default, в Windows используют ipconfig /all и route print. Временную смену маршрута выполняют через ip route или route, а постоянную настройку сохраняют в конфигурации сетевого менеджера.
Перед изменением gateway на удаленном сервере сохраните текущую таблицу маршрутизации, проверьте новый адрес шлюза и подготовьте резервный доступ через консоль гипервизора, IPMI или вторую SSH-сессию. Ошибка в адресе, интерфейсе или метрике может оборвать подключение.
Что такое default gateway и маршрут по умолчанию
Маршрут по умолчанию используется, когда в таблице маршрутизации нет более точной записи для адреса назначения. В IPv4 он обозначается как 0.0.0.0/0, в IPv6 как ::/0. Поле via указывает адрес шлюза, а dev определяет сетевой интерфейс.
Упрощенная цепочка выглядит так: хост -> default gateway -> внешняя сеть. Шлюз должен находиться в подсети интерфейса и быть доступен через этот интерфейс.
Как система выбирает маршрут
Ядро применяет принцип longest prefix match: сначала выбирается маршрут с наиболее длинным совпадающим префиксом. Запись 192.168.10.0/24 предпочтительнее 192.168.0.0/16, а маршрут 0.0.0.0/0 используется последним.
Если несколько подходящих маршрутов имеют одинаковую специфичность, система учитывает метрику. Меньшее значение обычно получает приоритет. Типичная запись Linux выглядит так:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
via, next hop, адрес соседнего маршрутизатора;dev, интерфейс для отправки пакетов;proto, источник записи, например DHCP или static;metric, числовой приоритет маршрута;src, предпочтительный исходный адрес, если он задан.
Чем gateway отличается от IP-адреса и DNS-сервера
| Параметр | Назначение |
|---|---|
| IP-адрес | Адрес самого хоста в конкретной сети. |
| Маска или префикс | Определяет границы локальной подсети. |
| Default gateway | Следующий маршрутизатор для неизвестных локальных сетей. |
| DNS-сервер | Преобразует доменные имена в IP-адреса. |
Пинг по IP может работать при неисправном DNS. Обратная ситуация тоже возможна: DNS отвечает, но маршрут к нужному сервису отсутствует. Эти параметры проверяют раздельно.
Как посмотреть маршрут по умолчанию в Linux
Для современных дистрибутивов используйте пакет iproute2. Он показывает фактическую таблицу маршрутизации ядра и подходит для Ubuntu, Debian, Rocky Linux и большинства других систем.
Проверка через ip route
ip route
ip route show default
ip -6 route show default
Пример вывода:
default via 10.10.0.1 dev ens18 proto static metric 100
В этой строке gateway равен 10.10.0.1, интерфейс выхода, ens18. Если команда ничего не выводит, маршрут по умолчанию отсутствует. Несколько строк default означают, что системе приходится выбирать между несколькими шлюзами.
Полную информацию об адресах и состоянии интерфейсов можно получить так:
ip address
ip link
ip neigh
Команда ip neigh помогает проверить, видит ли хост шлюз на канальном уровне. Состояние REACHABLE или STALE обычно означает, что сосед обнаружен. Отсутствие записи требует проверки кабеля, VLAN, bridge, виртуального адаптера и ARP.
Как узнать маршрут до конкретного адреса
ip route get 1.1.1.1
ip -6 route get 2606:4700:4700::1111
Команда показывает выбранный маршрут, next hop, интерфейс и исходный адрес. Пример:
1.1.1.1 via 10.10.0.1 dev ens18 src 10.10.0.25 uid 0
Эта проверка полезнее простого просмотра default route, когда на сервере есть VPN, несколько интерфейсов или policy routing.
Проверка через NetworkManager и старые команды
nmcli connection show --active
nmcli device show ens18
nmcli connection show <имя-соединения>
NetworkManager показывает активное соединение, адреса, DNS и маршруты. Команды route -n и netstat -rn встречаются в старых инструкциях, но для новых систем предпочтительнее ip route. Дополнительный алгоритм проверки интерфейсов, маршрутов, firewall и VPN приведен в чеклисте диагностики маршрутизации на Linux-сервере.
Как посмотреть default gateway в Windows
Проверка IP-конфигурации интерфейса
ipconfig /all
Ищите поля Default Gateway, IPv4 Address, Subnet Mask и DNS Servers внутри нужного адаптера. Пустой gateway на интерфейсе управления, storage или изолированной лабораторной сети может быть нормальным.
Проверка таблицы маршрутизации
route print
В таблице IPv4 маршрут по умолчанию представлен сетью 0.0.0.0 и маской 0.0.0.0. Строка содержит gateway, интерфейс и metric. Несколько записей с одинаковой сетью требуют проверки метрик и назначения адаптеров.
ping 192.168.1.1
tracert 1.1.1.1
ping проверяет доступность шлюза, а tracert помогает увидеть первый узел пути. Отсутствие ответа ICMP не доказывает полную недоступность: firewall может блокировать эхо-запросы.
Как изменить маршрут по умолчанию в Linux
Перед изменением выполните ip route, сохраните вывод и убедитесь, что новый gateway находится в локальной подсети. На удаленном сервере откройте вторую SSH-сессию и подготовьте out-of-band-консоль.
Временная смена gateway через ip route
sudo ip route replace default via 10.10.0.1 dev ens18
ip route show default
ip route get 1.1.1.1
replace заменяет существующую запись или создает ее при отсутствии. Для явного удаления старого маршрута используйте:
sudo ip route del default via 10.10.0.254 dev ens18
sudo ip route add default via 10.10.0.1 dev ens18
Такие изменения действуют до перезагрузки или перезапуска сетевого менеджера. Если gateway недоступен через указанный интерфейс, команда может завершиться ошибкой либо оставить систему без внешнего доступа.
Как добавить маршрут по умолчанию
Сначала проверьте, что запись отсутствует:
ip route show default
Затем добавьте маршрут:
sudo ip route add default via 192.168.50.1 dev eth0 metric 100
Добавляйте второй default route только при осознанной схеме failover, ECMP или policy routing. Для обычного сервера один основной шлюз предсказуемее.
Как удалить маршрут по умолчанию
sudo ip route del default via 192.168.50.1 dev eth0
Удаление последнего default route отключит доступ к сетям, для которых нет отдельных маршрутов. Перед операцией подготовьте команду возврата и не закрывайте рабочую SSH-сессию, пока новый путь не проверен.
Как сохранить настройку после перезагрузки
Команда ip route меняет текущую таблицу, но не всегда конфигурацию, из которой система поднимает интерфейс.
Для NetworkManager:
sudo nmcli connection modify <соединение> ipv4.gateway 10.10.0.1 ipv4.never-default no
sudo nmcli connection up <соединение>
Для Netplan изменяют YAML-файл соединения и применяют конфигурацию:
sudo netplan try
sudo netplan apply
netplan try дает возможность подтвердить изменения и полезен при удаленной работе. Формат постоянной настройки зависит от дистрибутива, systemd-networkd, NetworkManager или другого сетевого менеджера.
Как сменить шлюз по умолчанию в Windows
Временное изменение через route
route print
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10
Для маршрута, который должен пережить перезагрузку, используют параметр -p:
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10
Перед удалением старой записи проверьте интерфейс и существующие метрики. На рабочем сервере изменение выполняйте из PowerShell или консоли управления с резервным каналом.
Постоянная настройка шлюза интерфейса
В графическом интерфейсе откройте свойства сетевого адаптера, параметры IPv4 и укажите IP-адрес, маску, default gateway и DNS. После сохранения проверьте результат:
ipconfig /all
route print
ping 192.168.1.1
В PowerShell можно посмотреть интерфейсы и адреса:
Get-NetIPConfiguration
Get-NetRoute -DestinationPrefix "0.0.0.0/0"
Несколько адаптеров с автоматически заданными шлюзами создают конкурирующие маршруты. Для management- и storage-интерфейсов gateway обычно не задают, если через них не требуется выход в другие сети.
Несколько сетевых интерфейсов: как избежать конфликтов
Почему два default route могут работать непредсказуемо
Два маршрута по умолчанию конкурируют по метрике. При изменении состояния интерфейса, DHCP-аренды, VPN или правил policy routing исходный путь может измениться. Ответный трафик способен уйти через другой интерфейс, что приводит к асимметричной маршрутизации и обрывам TCP-сессий.
Сервер с public-интерфейсом и management-интерфейсом обычно должен иметь один основной default route. Второй шлюз оправдан при настроенном failover, ECMP или отдельных таблицах маршрутизации.
Разделение трафика по интерфейсам
Для management, storage и backup-сетей задавайте точные маршруты:
sudo ip route add 10.20.0.0/16 via 10.10.0.1 dev eth0
sudo ip route add 10.30.0.0/16 via 10.11.0.1 dev eth1
Сложные схемы с несколькими провайдерами, VPN и разными исходными адресами требуют policy routing: правил ip rule и отдельных таблиц. Это надежнее, чем добавлять несколько равноправных default route в одну таблицу.
Особенности виртуальных машин и контейнерных хостов
В виртуальной машине маршрут меняют внутри гостевой ОС. На гипервизоре проверяют bridge, VLAN и uplink. Изменение маршрута на физическом хосте не исправит ошибку в гостевой системе, если проблема находится внутри VM.
На Docker-хосте учитывайте network namespace, bridge, интерфейс docker0 и NAT. Маршрут внутри контейнера может отличаться от маршрута хоста. Проверяйте его из нужного namespace, а не только командой на узле:
docker exec <container> ip route
ip route
При размещении VM или контейнерного хоста в облаке отдельно проверьте маршрут внутри ОС и правила виртуальной сети провайдера. Для тестовых и рабочих серверов с предсказуемым сетевым доступом можно использовать облачную инфраструктуру Timeweb Cloud.
Признаки неправильного маршрута по умолчанию
Локальные адреса доступны, внешние нет
Проверьте IP-адрес, префикс, соседей и default route:
ip address
ip neigh
ip route show default
ping -c 3 <gateway>
Если шлюз не отвечает, проверьте ARP, VLAN, firewall и состояние интерфейса. Если шлюз доступен, но внешний IP нет, ищите проблему в upstream-маршрутизаторе, NAT, фильтрации или обратном маршруте.
IP-адреса доступны, доменные имена нет
ping -c 3 1.1.1.1
dig example.org
nslookup example.org
Рабочий ping до IP при ошибке разрешения имен указывает на DNS-проблему. Замена gateway в этом сценарии не поможет.
Доступ нестабилен при нескольких интерфейсах
Проверьте маршрут и исходный адрес для проблемного назначения:
ip route get <адрес>
ip rule show
ip route show table main
Сравните metric, интерфейс выхода и обратный путь. Отдельно проверьте VPN, фильтры, MTU и правила маршрутизации на соседних устройствах.
Быстрая диагностика default route: пошаговый алгоритм
Проверить интерфейс и адрес
- Убедитесь, что интерфейс поднят:
ip linkв Linux илиGet-NetAdapterв Windows. - Проверьте IP-адрес и префикс:
ip addressилиipconfig /all. - Проверьте link state, VLAN, bridge и соседей. Для контейнера выполняйте команды внутри его namespace.
Проверить gateway и таблицу маршрутизации
ip route show
ip route get 1.1.1.1
Ожидаемый результат, маршрут содержит правильные via, dev, metric и source address. В Windows используйте route print.
Проверить связь по уровням
- Проверьте gateway.
- Проверьте внешний IP-адрес.
- Проверьте DNS-резолвер через
digилиnslookup. - Проверьте доменное имя и нужный TCP-порт.
- При необходимости используйте
tracerouteилиtracert.
ICMP может быть запрещен, поэтому отсутствие ответа на ping сопоставляйте с проверкой TCP, логами firewall и доступностью самого сервиса.
Зафиксировать и откатить изменение
Сохраните вывод ip route, ip address, ip rule или route print. Проверьте SSH, DNS, рабочие подсети и исходящие соединения сервисов. После перезагрузки повторите проверки, чтобы убедиться в сохранении конфигурации.
При потере доступа вернитесь к предыдущему gateway через консоль управления или выполните заранее подготовленную команду отката. Не закрывайте единственную рабочую SSH-сессию сразу после смены маршрута.
Безопасная смена gateway на удаленном сервере
Резервный доступ и SSH-мультиплексирование
Перед изменением подготовьте вторую независимую SSH-сессию, консоль гипервизора, IPMI или другой out-of-band-канал. SSH multiplexing переиспользует уже установленное соединение через Unix-socket и ускоряет запуск новых сессий, но не заменяет резервный канал: при разрыве исходного сетевого пути новые подключения через тот же socket могут не помочь.
Сначала примените временный маршрут, затем проверьте связь и только после этого измените постоянную конфигурацию.
Проверка после изменения
- gateway отвечает через ожидаемый интерфейс;
ip route getилиroute printпоказывает правильный путь;- доступны внешний IP, DNS и рабочие подсети;
- SSH-сессия сохраняется;
- сервисы могут устанавливать исходящие соединения;
- мониторинг не фиксирует рост ошибок и недоступность узла.
Частые ошибки при настройке маршрута по умолчанию
Что проверить перед применением
- Новый gateway находится в локальной подсети выбранного интерфейса.
- IP-адрес и префикс интерфейса указаны без ошибок.
- Существующий default route найден и понятна его метрика.
- Назначение интерфейса соответствует трафику: public, management, storage или backup.
- Понятно, где хранится постоянная конфигурация.
- Есть резервная SSH-сессия и канал отката.
Что проверить после перезагрузки
Повторно выполните ip route show default, ip route get <адрес>, ipconfig /all или route print. Сверьте gateway, metric, интерфейс выхода, DNS и доступ к рабочим подсетям.
Типовые ошибки: шлюз находится вне подсети, добавлены два конфликтующих default route, изменена временная таблица вместо постоянной конфигурации, маршрут задан на хосте вместо гостевой ОС, DNS принят за проблему маршрутизации, а действующая SSH-сессия не учтена при смене пути. Подробный разбор этих случаев собран в статье о частых ошибках настройки маршрутизации.
Практическое правило: сначала определите фактический маршрут командой
ip route getилиroute print, затем меняйте gateway временно, проверяйте доступ и только после этого сохраняйте конфигурацию.