Определение простыми словами
Шлюз по умолчанию — это «дверь» из локальной сети наружу. Когда серверу нужно отправить пакет на адрес, которого нет в его подсети, он не пытается достучаться напрямую, а передаёт трафик на default gateway. Дальше уже маршрутизатор смотрит таблицу маршрутизации и пересылает пакет дальше — к следующему хопу или провайдеру.
На VPS-машине шлюз — это обычно интерфейс гипервизора или edge-роутера дата-центра. Если шлюз указан неверно, локальная сеть работает (виден соседний контейнер), но интернет недоступен — типичная картина после ручной правки /etc/netplan или конфликта с DHCP.
Сравнение (таблица)
| Параметр | Default gateway | Маршрут к подсети | NAT-шлюз провайдера |
|---|---|---|---|
| Где живёт | таблица маршрутизации хоста | таблица маршрутизации хоста | оборудование ISP |
| Куда уходит трафик | любой неизвестный адрес | конкретная сеть | наружу через NAT |
| Метрика | обычно 0.0.0.0/0 | например 10.0.0.0/24 | прозрачно для клиента |
| Кто меняет | админ или DHCP | админ | провайдер |
Кейсы использования
- Настройка свежеустановленной Ubuntu 24.04 на dedicated-сервере: прописывается шлюз в netplan, иначе apt update висит на резолве зеркал.
- Перенос VPS между гипервизорами: после миграции IP остался прежний, а адрес шлюза в новом ДЦ другой — без правки сервер уходит в офлайн.
- Multi-WAN на роутере: два default gateway с разными метриками для отказоустойчивости.
- Настройка VPN-туннеля: меняем default gateway на туннельный интерфейс, чтобы весь трафик шёл через WireGuard.
- Негативный сценарий: прописали шлюз из чужой подсети — ARP-запрос не доходит, и сервер недоступен ни локально, ни снаружи. SSH обрывается, остаётся только KVM-консоль.
Технические детали
Текущий шлюз можно посмотреть и поменять одной командой. После правки netplan-конфига меняется постоянно, через ip route — только до перезагрузки.
ip route show default
# default via 192.168.1.1 dev eth0 proto dhcp metric 100
ip route del default
ip route add default via 192.168.1.254 dev eth0 metric 100
cat /etc/netplan/01-netcfg.yaml
netplan apply
traceroute 8.8.8.8 | head -3
В Linux шлюз ищется по правилам политики маршрутизации: сначала main table, потом default. Если появилось два маршрута 0.0.0.0/0 с одинаковой метрикой, ядро выберет первый — поведение становится непредсказуемым, поэтому метрики всегда уникальны.
🔥 Где это применяется
Частые вопросы
Чем шлюз по умолчанию отличается от DNS?
Шлюз — это адрес маршрутизатора для отправки пакетов наружу, DNS — сервис, который превращает имена сайтов в IP. Это две независимые настройки.
Можно ли работать без default gateway?
Да, если сервер общается только внутри одной подсети — например, бэкенд за реверс-прокси. Но интернета у него не будет.
Как проверить, что шлюз настроен правильно?
Команда <code>ping</code> до адреса шлюза должна отвечать, а <code>traceroute 8.8.8.8</code> — показывать первый хоп именно на этом IP.