Как установить шлюз по умолчанию в Ubuntu
Все устройства в вашей сети полагаются на шлюз по умолчанию для связи. Пакеты данных проходят через маршрутизатор в вашу сеть и из нее, прежде чем направляются на конкретное устройство, которому принадлежит пакет.
Каждая операционная система поставляется со шлюзом по умолчанию. Однако вы можете временно или навсегда изменить шлюз по умолчанию, чтобы добавить другой маршрут для ваших сетевых устройств. Вы можете использовать команду IP в Ubuntu, чтобы изменить шлюз по умолчанию.
Проверка шлюза по умолчанию
Изменение шлюза по умолчанию является обычным делом, когда у вас есть разные подсети или когда вы должны указать конкретную машину на конкретный шлюз. Прежде чем изменить шлюз по умолчанию, давайте перечислим доступные маршруты.
Используйте параметр list с командой IP или ее сокращением r , чтобы обозначить маршрут.
$ ip route list

Шлюз по умолчанию содержит ключевое слово default . Если вы настроили несколько маршрутов в своей сети, вы можете использовать команду grep для фильтрации маршрутизатора и получения шлюза по умолчанию.
Используйте следующую команду:
$ ip r | grep default

Текущий шлюз по умолчанию — 192.168.88.1 на enp0s3 интерфейсе. Перейдем к установке нового шлюза по умолчанию.
Как установить новый шлюз по умолчанию
Команда ip использует параметр route для установки нового шлюза по умолчанию. Вы должны указать тип маршрута, который хотите добавить. В нашем случае это «по умолчанию».
Например, давайте установим шлюз по умолчанию как 192.168.88.10.
$ sudo ip route add default via 192.168.88.10

Предположим, мы хотим установить шлюз по умолчанию для определенного сетевого интерфейса. В этом случае укажите сетевой интерфейс после шлюза. В нашем случае это интерфейс enp0s3.
$ sudo ip route add default via 192.168.88.10 dev enp0s3
Обратите внимание, что мы должны добавить sudo , чтобы использовать привилегии администратора, поскольку мы редактируем таблицу маршрутизации для Ubuntu, что является административной задачей.
Мы можем использовать параметры список или маршрут, чтобы проверить вновь добавленный шлюз по умолчанию.

Обратите внимание, что текущий добавленный шлюз по умолчанию — это тот, который мы указали ранее. В предыдущем выводе у нас теперь есть два шлюза по умолчанию. Ключевым моментом является то, что сделанные нами изменения являются временными, пока вы не добавите их в файлы конфигурации сетевого менеджера.
В предыдущем случае мы можем удалить добавленный шлюз, чтобы остался только один.
Используйте ключевое слово delete , чтобы удалить добавленный шлюз.
$ sudo ip route delete default

Если мы проверим доступный шлюз по умолчанию после запуска команды удаления, мы подтвердим, что у нас остался только один шлюз по умолчанию — 192.168.88.1.
Предположим, мы хотим внести постоянные изменения в сеть, чтобы внедрить новый шлюз. Мы должны отредактировать файл конфигурации. Откройте файл сетевого менеджера с помощью редактора файлов по вашему выбору. В этом случае давайте воспользуемся gedit следующей командой:
$ sudo gedit / etc / netplan / 01-network-manager-all.yaml

Добавьте новый шлюз, используя представленный ниже формат. Убедитесь, что интервал установлен в два пробела с правильным отступом. После редактирования сохраните файл и выйдите из редактора.

Прежде чем применять изменения с помощью команды netplan , запустите сухой тест.

Если вы уверены в новой конфигурации сети, нажмите клавишу ввода. В противном случае изменения вернутся к предыдущим настройкам через указанные секунды.

Заключение
Ubuntu поставляется со шлюзом по умолчанию, но это не значит, что вы не можете установить новый шлюз. В этом руководстве описано все о добавлении нового шлюза с помощью команды ip и о том, как навсегда сохранить изменения в файле конфигурации.
Все права защищены. © Linux-Console.net • 2019-2024
Настройка шлюза по умолчанию
Сложилась у меня такая непростая ситуация: не могу настроить шлюз по умолчанию под linux’ом.
Провайдер дал следующую техническую информацию о подключеии:
IP адрес 172.31.15.2
IP шлюза 172.31.15.1
Маска подсети 255.255.255.0
DNS 212.44.131.6, 212.44.130.6
Проверял эти настройки под оффтопиком — все работает на ура. DNS-сервера пингуются, яндекс пингуется, сайты открываются и работаю.
В Linux сделал следующие настройки:
1. В файле /etc/sysconfig/network-scripts/ifcfg-eth1 прописал IP адрес, маску подсети, активизацию при загрузке.
2. В файле /etc/resolv.conf добавил 2 записи nameserver с соответствующими IP адресами.
3. После перезагрузки появляется интерфейс eth1 с необходимым адресом и маршрут до 172.31.15.0 netmask 255.255.255.0
4. Пытаюсь добавить маршрут по дефолту:
#route add default gw 172.31.15.1
Итог: ни яндекс и гугл по IP не пингуются. Так же не пингуются DNS сервера. traceroute не возвращает ни одной точки маршрута (говорит, что 172.31.15.2 превысил время ожидания).
Вопрос: что я сделал не так и как мне теперь это все исправить.

trex6 ★★★★★
27.05.10 15:01:58 MSD
А шлюз-то сам пингуется? (172.31.15.1)
Noldor
( 27.05.10 15:10:10 MSD )
Убери все что делал (разве что resolv.conf оставь), ребутнись и попробуй сделать вручную что-то типа такого:
ifconfig eth0 up ifconfig eth0 172.31.15.2 route add default gw 172.31.15.1
ostin ★★★★★
( 27.05.10 15:13:50 MSD )
Ответ на: комментарий от Noldor 27.05.10 15:10:10 MSD

Шлюз не пингуется. Ни под виндой, ни под linux’ом. Видимо хитрые настройки для отклюения пинга.
trex6 ★★★★★
( 27.05.10 15:14:17 MSD ) автор топика
Ответ на: комментарий от ostin 27.05.10 15:13:50 MSD

eth0 — смотрит в локалку, а не к провайдеру. Сейчас попробую на eth1. Хотя я смысла в таких действиях не вижу.
trex6 ★★★★★
( 27.05.10 15:15:50 MSD ) автор топика
Ответ на: комментарий от trex6 27.05.10 15:15:50 MSD
А eth0 ради эксперимента down сделай. Да, смысла не много, но ты все правильно в первом посте делаешь (на словах по крайней мере), чистой воды шаманство (-;
ostin ★★★★★
( 27.05.10 15:18:12 MSD )
Ответ на: комментарий от ostin 27.05.10 15:18:12 MSD

Вобщем попробовал ручками запустить eth1. Как и следовало ожидать — результат нулевой.
С нетерпением жду еще ваших предложений.
trex6 ★★★★★
( 27.05.10 15:42:51 MSD ) автор топика
Телепаты в отпуске
Почему в теме не видно вывода:
1. ifconfig
2. route -n
3. iptables -nL
4. iptables -t nat -nL
Слепая гипотеза: на eth0 стоит адрес из той же подсети или с маской, позволяющей стучаться на default gw не с того интерфейса.
linuxfan ★
( 27.05.10 15:47:52 MSD )
Ответ на: Телепаты в отпуске от linuxfan 27.05.10 15:47:52 MSD

Ну собственно вот и они:
#ifconfig eth0 Link encap:Ethernet HWaddr 00:50:70:B4:30:42 inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::250:70ff:feb4:3042/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:342 errors:0 dropped:0 overruns:0 frame:0 TX packets:239 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:33516 (32.7 KiB) TX bytes:31885 (31.1 KiB) Interrupt:20 Base address:0xe800 eth1 Link encap:Ethernet HWaddr 00:80:48:67:21:76 inet addr:172.31.15.2 Bcast:172.31.15.255 Mask:255.255.255.0 inet6 addr: fe80::280:48ff:fe67:2176/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:18 errors:4 dropped:319 overruns:4 frame:0 TX packets:287 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3324 (3.2 KiB) TX bytes:27546 (26.9 KiB) Interrupt:20 Base address:0xc000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:49 errors:0 dropped:0 overruns:0 frame:0 TX packets:49 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5015 (4.8 KiB) TX bytes:5015 (4.8 KiB)
#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.31.15.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 172.31.15.1 0.0.0.0 UG 0 0 0 eth1
#iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
#iptables -t nat -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:172.31.15.1 Chain OUTPUT (policy ACCEPT) target prot opt source destination
Настройка маршрута по умолчанию в Linux
![]()
В статье мы покажем, как использовать команды маршрутизации в Linux (в UNIX подобных системах) чтобы отображать или конфигурить информацию о дефолтных маршрутах. Погнали разбираться!
Показать маршруты по умолчанию
Ловите 2 команды, которые помогут отобразить текущую таблицу маршрутизации в Linux:
# route
Вывод такой команды будет примерно следующим:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 ra0 default dsl-router 0.0.0.0 UG 0 0 0 ra0
Или можно использовать второй вариант:
$ /sbin/route
”Выхлоп” такой команды в той же самой таблице маршрутизации:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 191.255.255.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 191.255.255.1 0.0.0.0 UG 0 0 0 eth0
Настройка дефолтного маршрута
Синтаксис настройки категорически прост. Смотрите:
route add default gw
- IP-АДРЕС — IP — адрес шлюза;
- ИНТЕРФЕЙС — имя интерфейса, за которым сидит указанный выше шлюз;
Например, если IP — адрес вашего роутера 192.168.1.254 и он сидит на интерфейсом eth0, то из под root выполните команду:
# route add default gw 192.168.1.254 eth0
Или можно использовать хостнейм (только проверьте, чтобы он резолвился на уровне DNS):
# route add default gw dsl-router eth0
Или можно использовать команду ip , чтобы маршрутизировать весь трафик через шлюз 192.168.1.254, который подключен к интерфейсу eth0:
# ip route add 192.168.1.0/24 dev eth0
Либо вместо eth0 интерфейса можно прописать в явном виде адрес шлюза. Тут ап ту ю, как говорится 🙂
# ip route add 192.168.1.0/24 via 192.168.1.254
Изменение шлюза в Linux
Однажды мне понадобилось на разных серверах изменить шлюз по умолчанию не перезапуская сетевую службу и не перезагружая сервер, приведу примеры как я это делал.
Сначала посмотри текущие маршруты:
ip route
На Ubuntu Server я добавил новый шлюз и потом удалил старый:
ip route add default via 192.168.5.8 ip route del default via 192.168.5.1
На сервере с Proxmox основанном на Debian, так не получилось, отобразилась ошибка:
По этому я выполнил команду (это более правильный вариант):
ip route replace default via 192.168.5.8
Потом изменил шлюз в файле конфигурации сети, чтобы изменения не сбросились после перезапуска сервера:
cd /etc/network/ nano interfaces
Если на сервере используется Netplan, то можно изменить шлюз в его конфигурации и потом выполнить:
netplan try netplan apply
Как изменить прочие сетевые параметры, например IP адрес и т.д. смотрите в моих статьях:
Настройка сети в Linux
Настройка Netplan
- Нажмите, чтобы открыть на Facebook (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Ещё
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться на Reddit (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Нажмите для печати (Открывается в новом окне)