Как установить статические маршруты в Ubuntu Server?

Я использовал Ubuntu начиная с Ubuntu 8.10; сегодня я работаю с Ubuntu 12.04 Server.

У меня проблемы с сохранением статических маршрутов при загрузке. Обычно я помещаю команды маршрута

/sbin/route add -net <IP>/<MASK> <GW> dev <ethX>

в /etc/rc.local или создаю файл (с именем routes) внутри каталога /etc/network/if-up/, но я замечаю, что в Ubuntu 12.04 это не за работой.

Если я набираю команды в оболочке, они работают, но те же команды не работают, когда они находятся в указанном файле.

Я уже пытался изменить имя файла на другое имя, думая, что мое имя файла (routes) может быть ошибочным в Ubuntu 12.04, но это также не сработало.

Я также заметил, что команда /sbin/ifconfig работает, за исключением /sbin/route.

Что изменилось в настройке сети?

Как определить статические маршруты в Ubuntu 12.04?

58
задан 21 April 2015 в 00:13

7 ответов

то, что сработало для нас, было

sudo route add -net 192.168.0.2/32 gw 192.168.1.1 netmask 255.255.0.0

, которое я использовал для запуска на Mac:

sudo route -n add -net 192.168.0.2/32 192.168.1.1

, но на ubuntu «gw» между IP-адресами и последней частью «сетевой маски» отсутствовал (также -n не требуется в ubuntu)

3
ответ дан 21 April 2015 в 00:13

В Ubuntu доступен пакет ifupdown-extra .
Он предоставляет автоматические сценарии (установлены в / etc / network / * / ), один из которых используется для добавления статических маршрутов.

Файл конфигурации для этого - / etc / network / routes

Верхняя часть этого файла конфигурации имеет хорошее описание:

Этот файл конфигурации читается сценарием static-routes if-updown и сценарий /etc/init.d/networking-routes для настройки списка маршрутов связаны либо с заданным интерфейсом, либо с глобальными маршрутами.

Я использую пример маршрута:

192.168.240.0 255.255.255.0 192.168.130.3 em3
6
ответ дан 21 April 2015 в 00:13

Мен статикалык маршрутту аныктаган туура жер / etc / network / interfacesде экендигин көп таптым, эгерде глобалдык түрдө тармакты / etc / init менен өчүрүп-күйгүзсөңүз болот. г / тармакты кайра баштоо, мисалы. Эгер ifdown жана ifup колдонуп интерфейсти өз-өзүнчө өчүрө турган болсоңуз, анда ifup катасы менен аяктайт:

ifup eth1

RTNETLINK answers: File exists
Failed to bring up eth1.

Ушундан улам маршрутту аныктоого аракет кылат, бирок ал мурунтан эле аныкталган. Интерфейс баары бир иштейт, бирок ifup жаңырбаса / иштетилбесе / тармак / ifstate болбойт, андыктан кийинки жолу сиз бизге --force желегин колдонмоюнча аны жасай албай каласыз.

Конфигурацияны улантуу үчүн ifup жасоо үчүн маршруттар мурунтан эле аныкталган болсо дагы, / etc / network / interfacesдеги каттамдарды аныктоодо ушул форматты колдонсо болот

up ip route add 172.16.0.0/24 via 192.168.10.1 || true
up ip route add 192.168.0.0/16 via 192.168.10.1 || true

Ошентип, сиз чыгууда эскертүү аласыз, бирок интерфейстин конфигурациясы аягына чыгат

ifup eth1

RTNETLINK answers: File exists
RTNETLINK answers: File exists
ssh stop/waiting
ssh start/running, process 18553
19
ответ дан 21 April 2015 в 00:13

Вы можете поместить статические маршруты в /etc/network/interfaces:

auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
      up route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.1.1
67
ответ дан 21 April 2015 в 00:13

Вы можете попробовать это (добавьте это в /etc/network/interfaces), это почти полный способ установки маршрутов:

auto eth0
iface eth0 inet static
    post-up /sbin/route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
    post-up /bin/mount -t nfs 192.168.0.203:/motd/ /motd/
9
ответ дан 21 April 2015 в 00:13

Я предпочитаю использовать nmcli .

nmcli device modify <device> +ipv4.routes "<ip>/<mask> <gw>" ipv4.route-metric 0

Например:

nmcli device modify wlp2s0 +ipv4.routes "1.1.1.0/24 192.168.0.1" ipv4.route-metric 0

После этого примените изменения, перезапустив службу NetworkManager:

sudo systemctl restart NetworkManager.service
3
ответ дан 21 October 2019 в 16:13

Используя nmcli , я смог запустить постоянное решение (решение @isapir не работало на моем устройстве).

sudo nmcli connection modify <conection-name> +ipv4.routes "<ip>/<mask> <gw> <mt>"

Например:

sudo nmcli connection modify ssid-name +ipv4.routes "1.1.1.0/24 192.168.0.1 100"

После этого можно применить изменения, отключив соединение и снова (нет необходимости в полном перезапуске NetworkManager):

sudo nmcli con down ssid-name ; sudo nmcli con up ssid-name

Чтобы увидеть запущенные текущие соединения:

sudo nmcli connection
3
ответ дан 22 November 2019 в 23:51

Другие вопросы по тегам:

Похожие вопросы: