Добавить маршрут ubuntu: Ubuntu Linux, (ubuntu linux route ifconfig)
Содержание
Как просмотреть сетевую таблицу маршрутизации в Ubuntu?
Таблицу маршрутизации в Ubuntu можно посмотреть при помощи ввода всего одной команды в терминале. Причем команд, которые покажут вам таблицу, есть несколько, но обо всем подробнее чуть ниже.
Любая информация в интернете от устройства к устройству передается в виде специальных пакетов данных. Пока информация доходит от одного компьютера к другому, расположенному в другом городе или стране, она проходит через цепочку других устройств: компьютеров или роутеров. Весь путь от одного компьютера к другому — это маршрут движения информационных пакетов.
Маршрут передачи информации может формироваться автоматически, а можно его прописывать самостоятельно. Маршрут формируется самостоятельно на основе определенных сетевых параметров, которые содержатся в таблице маршрутизации. Обычно в таблице маршрутизации содержатся следующие параметры:
IP-адрес конечной точки маршрута;
маска сети;
IP-адрес шлюза, по которому можно добраться до конечной точки маршрута;
адрес интерфейса, по которому открывается доступный шлюз;
числовое значение, определяющее предпочтительный маршрут.
Иногда в таблицах маршрутизации можно увидеть еще ряд параметров, например:
Таблица маршрутизации в Ubuntu
В таблице маршрутизации содержится информация, необходимая для отправки пакета информации. Когда вы пытаетесь отправить какую-то информацию с компьютера, то первым делом он изучает таблицу маршрутизации на наличие маршрута для отправки этого пакета. Если таковых маршрутов не имеется, тогда компьютер отправляет пакет информации по маршруту, который задан по умолчанию.
Таким образом, изучив таблицу маршрутизации, вы можете понять по каким существующим маршрутам отправляется информация с вашего компьютера, а также можете создать и настроить новый маршрут.
Таблица маршрутизации в Ubuntu: команды в терминале
Первая и основная команда, которая выводит вам таблицу маршрутизации в Ubuntu — это:
$ route
Эта команда выведет основную информацию в таблице маршрутизации Ubuntu. Если вам ее по каким-то причинам будет недостаточно и вы хотите получить более подробную таблицу, тогда воспользуйтесь командой:
$ routel
Также в качестве альтернативы первым двум командам, можно воспользоваться встроенной в Ubuntu утилитой, которая постоянно собирает информацию о сетевых соединениях. Чтобы вывести информацию от этой утилиты, воспользуйтесь командой:
$ netstat -r
С технической стороны, информация, выводимая командами «route» и «netstat», будет абсолютно одинакова. Просто это две разные утилиты разного назначения.
Более удобный способ — это воспользоваться командой:
$ ip route
Она хороша тем, что более понятно выводит таблицу маршрутизации, если сравнивать с предыдущими командами.
Добавление маршрута в Linux
Обычно редко кто смотрит таблицу маршрутизации в Ubuntu просто так. Такими вещами пользователи начинают интересоваться, когда им хочется самостоятельно настроить маршрут передачи информации. Добавление нового маршрута в Linux — дело несложное и происходит оно при помощи уже известной вам командной утилиты «route» или командной утилиты «ip route». Разница между этими командами простая: «route» считается устаревшей утилитой для добавления маршрута и в основном используется только для отображения маршрута, а вот «ip route» — это более современный способ создания маршрута.
Шаблон команды «route»:
route [-f] [-p] command -net [указываете адрес точки доставки пакета информации] netmask [указываете маску подсети] gw [указываете адрес шлюза] metric [указываете уровень предпочтения маршрута числом, используется для маршрутизаторов] dev [указываете интерфейс сети]
В шаблоне команды есть два ключа, вот что они означают:
Также в шаблоне команды можно использовать дополнительные опции для «command», например:
«add» — добавить маршрут;
«del» — удалить маршрут;
«replace» — заменить маршрут;
«change» — изменить и настроить маршрут.
Шаблон команды «ip route» следующий:
ip route command [указываете адрес точки доставки пакета информации] netmask [указываете маску подсети] via [указываете адрес шлюза] metric [указываете уровень предпочтения маршрута числом, используется для маршрутизаторов] dev [указываете интерфейс сети]
Дополнительные опции для «command» здесь такие же как и в первом случае.
Заключение
Таблица маршрутизации в Ubuntu содержит необходимые данные, изучив которые, вы сможете понять каким образом и через какие устройства передается информация с вашего компьютера. Вы можете самостоятельно корректировать маршруты, если в этом есть необходимость.
Добавление маршрута в Linux — несложная задача, но потребует от вас понимания всех параметров и навыков работы с терминалом.
Как настроить маршрутизацию в Linux
Маршруты, которые необходимы для поставки пакетов до конечного назначения, настраиваются в интерфейсе или маршрутизаторе. Если перед компьютером стоит задача отправить пакет в сеть, он смотрит таблицу маршрутизации, в которой перечислены IP-адреса пунктов назначения и адреса интерфейсов и роутеров в домашней сети, которые могут отправить пакет по нужному адресу. Если для цели маршрут не указан, то в первую очередь задействуется так называемый шлюз по умолчанию или маршрут по умолчанию. Точно такая же картина наблюдается на роутере. Устройство смотрит на IP-адрес назначения и сверяет его со своей таблицей маршрутизации, а потом отправляет дальше. Дальше на примере рассмотрим, как настроить определенные маршруты и создать новые.
Смотрим таблицу маршрутизации
Прежде чем начать что-либо менять, необходимо понять, какие правила уже используются. Для этого в операционной системе Линукс предусмотрено несколько команд. Для этого используем специальную команду route:
$ route
Именно так выглядит таблица маршрутизации linux. В ней предусмотрена простая информация, которой не всегда достаточно чтобы понять суть дела. Для получения более детальной информации необходимо пользоваться командой routel:
$ routel
Здесь вы сможете увидеть IP адрес (target), IP адрес шлюза (gateway), IP отправителя (source), протокол, и даже сетевой интерфейс. Но есть более удобый способ посмотреть таблицу маршрутизации linux при помощи команды IP:
$ ip route
Мы видим результат, который похож с выводом предыдущей команды. Поскольку результата предоставлен в не самым удобном виде, можно использовать в качестве аргумента для ip route add или ip route del. Поверьте, это очень удобно. Так вы увидите в качестве шлюза по умолчанию везде используется 192.168.1.1. Дальше поговорим, что означает вывод этой команды:
- default — вариант по умолчанию. Здесь должен быть ip адрес цели или маска подсети;
- via 192.168.1.1 — указывает через какой шлюз мы можем добраться до этой цели, у нас это 192.168.1.1;
- dev enp2s0 — сетевой интерфейс, с помощью которого будет доступен этот шлюз;
- proto static — означает, что маршрут был установлен администратором, значение kernel значит что он был установлен ядром;
- metric — это приоритет маршрута, чем меньше значение — тем выше приоритет.
Дальше рассмотрим, как происходит настройка маршрутов Linux.
Настраиваем маршруты
У пользователя остается возможность настраивать таблицу маршрутизации с помощью команды ip. Например, чтобы изменить маршрут по умолчанию достаточно выполнить:
$ ip route add default via 192.168.1.1
Так вы можете добавить маршрут для любого IP адреса, например, для 243.143.5.25:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Итак, мы указываем IP адрес цели, а затем шлюз в локальной сети, через который можно достичь этого адреса. Проблема лишь в том, что такие марщруты активны до первой перезагрузки компьютера. После перезагрузки они автоматически удаляются. Чтобы исправить этот недостаток, маршруты нужно добавить в файл конфигурации.
Например, в системах семейства Red Hat есть конфигурационные файлы /etc/sysconfig/network-scripts/route-ethX. Каждый файл может описывать несколько маршрутов, например:
GATEWAY=10. 10.0.1
NETMASK=255.0.0.0
IPADDR=10.10.0.22
В этом файле конфигурации используется gateway, это щлюз для интерфейса, netmask — маска сети, а ipaddr — ip адрес интерфейса. В Debian и основанных на нем дистрибутивах можно настроить маршруты в файле /etc/network/interfaces. Здесь команда route добавляется в секцию iface. Например:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
При помощи опии -net мы указываем целевую сеть, netmask — это маска сети, а gw — шлюз. Ничего сложного в этом нет. Теперь добавленные маршруты останутся даже после перезагрузки.
Так мы рассмотрели как работает маршрутизация в Linux, как выполняется настройка маршрутизации в linux, а также зачем это нужно.
Сеть
— Как установить статические маршруты в Ubuntu Server?
спросил
Изменено
1 год, 3 месяца назад
Просмотрено
517 тысяч раз
Я использую Ubuntu начиная с Ubuntu 8. 10; сегодня я работаю с сервером Ubuntu 12.04.
У меня возникают проблемы с сохранением статических маршрутов при загрузке. Обычно я бы поставил команды маршрута
/sbin/route add -net/ dev
в /etc/rc.local
или я бы создал файл (с именем route
) внутри каталога /etc/network/if-up/
, но я заметил, что в Ubuntu 12.04 он не работает .
Если я набираю команды в оболочке, они работают, но те же самые команды не работают, когда они находятся в указанном файле.
Я уже пытался изменить имя файла на другие имена, думая, что мое имя файла ( route
) могли быть ошибочными в Ubuntu 12.04, но это тоже не сработало.
Я также заметил, что работает команда /sbin/ifconfig
, за исключением /sbin/route
.
Что изменилось в настройках сети?
Как определить статические маршруты в Ubuntu 12.04?
- сеть
- маршрутизация
3
Вы можете поместить статические маршруты в /etc/network/interfaces
:
авто eth0 iface eth0 инет статический адрес 192. 168.1.2 сетевая маска 255.255.255.0 up route add -net 192.168.0.0 сетевая маска 255.255.0.0 gw 192.168.1.1 up route add -net 172.16.0.0 сетевая маска 255.240.0.0 gw 192.168.1.1
9
Я очень часто обнаруживал, что правильное место для определения статического маршрута находится в /etc/network/interfaces, это нормально, если вы собираетесь глобально перезапустить сеть с помощью, например, /etc/init.d/networking restart. Но если вы собираетесь использовать ifdown и ifup для индивидуального отключения интерфейса, ifup завершится с ошибкой:
ифап eth2 RTNETLINK отвечает: файл существует Не удалось вызвать eth2.
Из-за этого пытается определить маршрут но он уже определен. Интерфейс в любом случае будет работать, но ifup не будет обновлять /run/network/ifstate, поэтому в следующий раз, когда вы будете использовать ifdown, вы не сможете это сделать, если не используете флаг —force.
Чтобы ifup продолжал настройку, даже если маршруты уже определены, вы можете использовать этот формат при определении маршрутов в /etc/network/interfaces
up ip route add 172.16.0.0/24 via 192.168.10.1 || истинный вверх IP-маршрут добавить 192.168.0.0/16 через 192.168.10.1 || истинный
Таким образом, вы получите предупреждение на выходе, но конфигурация интерфейса будет завершена
ifup eth2 RTNETLINK отвечает: файл существует RTNETLINK отвечает: файл существует ssh стоп/ожидание запуск/выполнение ssh, процесс 18553
3
Можно попробовать так (добавьте в /etc/network/interfaces
), это почти полный способ настройки маршрутов:
авто eth0 iface eth0 инет статический post-up /sbin/route add -net 192.168.0.0 сетевая маска 255.255.0.0 gw 192.168.1.1 post-up /bin/mount -t nfs 192.168.0.203:/motd/ /motd/
Поскольку это 2021 год, вы можете настроить его, используя netplan
в Ubuntu 18. 04 или более поздней версии (проверено на Ubuntu 20.04).
Полный справочник доступен на сайте netplan .
файл конфигурации можно найти в каталоге /etc/netplan/
.
сеть: версия: 2 Ethernet: ens160: # в моем случае имя интерфейса ens160 dhcp4: false # или правда. зависит от вашей ситуации адреса: [192.168.0.10/24] # ваш статический IP-адрес # фактический ответ здесь маршруты: - to: 0.0.0.0/0 # или любая другая подсеть на ваше усмотрение. 0.0.0.0/0 означает шлюз по умолчанию через: 172.16.0.1# или любой другой шлюз, который вы хотите. on-link: true # как вы видите, IP-адрес моего интерфейса и шлюз по умолчанию не находятся в одной и той же подсети, поэтому мы должны поставить это значение true, но если они находятся в одной подсети, это не требуется.
ПС. файлы конфигурации YAML чувствительны к отступам и не принимают вкладки. отступ 2 пробела.
не забудьте запустить netplan применить
.
1
В 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
С помощью nmcli
мне удалось запустить постоянное решение (@решение isapir не работает на моем устройстве).
соединение sudo nmcli изменить <имя-соединения> +ipv4.routes "/<маска> "
Например:
соединение sudo nmcli изменить имя ssid +ipv4. routes "1.1.1.0/24 192.168.0.1 100"
После этого применение изменений возможно путем отключения и повторного подключения соединения (нет необходимости в полном перезапуске NetworkManager):
sudo nmcli con down ssid-name ; sudo nmcli con до имени ssid
Чтобы увидеть текущие соединения, выполните:
соединение sudo nmcli
2
у нас сработало
sudo route add -net 192.168.0.2/32 gw 192.168.1.1 маска сети 255.255.0.0
я запускал на Mac:
sudo route -n add -net 192.168.0.2/32 192.168.1.1
, но в Ubuntu отсутствовал «gw» между IP-адресами и последней частью «сетевой маски» (также -n не требуется в Ubuntu)
2
Я предпочитаю использовать nmcli
.
nmcli устройство изменить <устройство> +ipv4.routes "/<маска> " ipv4.route-metric 0
Например:
nmcli изменение устройства wlp2s0 +ipv4. routes "1.1.1.0/24 192.168.0.1" ipv4.route-metric 0
После этого примените изменения, перезапустив службу NetworkManager:
sudo systemctl перезапустить NetworkManager.service
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
networking — Ubuntu 20.04 добавить статический маршрут
У меня есть два виртуальных сервера с Ubuntu 20.04, оба пока работают. Но моя проблема в том, что Server1 не может пинговать Server2 и наоборот. Я получаю сообщение об ошибке «Целевой хост недоступен». Это с доменным именем, а также с ip.
AFAIS это неправильный или отсутствующий маршрут между этими серверами
Я нашел этот учебник https://contabo.com/blog/creating-static-routes/
Но он не работает для меня, и мои швы конфигурации отличаются.
Мой файл /etc/netplan/01-netcfg.yaml выглядит так:
сеть: версия: 2 визуализатор: сетевой Ethernet: энс18: соответствовать: адрес: 00:50:56:46:a3:de адреса: - 38.242.229.хх/19 #- 2a02:c206:3009:2902:0000:0000:0000:0001/64 #шлюз6: fe80::1 маршруты: - до: 0.0.0.0/0 через: 38.242.224.1 по ссылке: правда серверы имен: поиск: [ неверный ] адреса: - 161. 97.189.52 - 161,97.189.51 #- 2a02:c206:5028::2:53 #- 2a02:c206:5028::1:53
Может быть, кто-то может помочь, чтобы я мог связаться с другим (вторым) сервером из этого экземпляра.
Мои знания о работе с сетью в Linux не настолько хороши, чтобы я мог изменить руководство в соответствии со своими потребностями.
Спасибо.
IP-адрес:
1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: eth0: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000 ссылка/эфир 00:50:56:46:a3:de brd ff:ff:ff:ff:ff:ff инет 38.242.229.72/19 brd 38.242.255.255 глобальный охват eth0 valid_lft навсегда ссылка на область inet6 fe80::250:56ff:fe46:a3de/64 valid_lft навсегда 3: docker0: mtu 1500 qdisc noqueue state DOWN group default ссылка/эфир 02:42:e1:f9:bb:15 brd ff:ff:ff:ff:ff:ff inet 172. 17.0.1/16 brd 172.17.255.255 глобальная область действия docker0 valid_lft навсегда
IP-маршрут:
по умолчанию через 38.242.224.1 dev eth0 proto static onlink 38.242.224.0/19Ссылка области ядра dev eth0 proto src 38.242.229.72
IP-адрес второго сервера:
1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: eth0: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000 ссылка/эфир 00:50:56:46:a3:dd brd ff:ff:ff:ff:ff:ff инет 38.242.229.63/19 brd 38.242.255.255 глобальный охват eth0 valid_lft навсегда 3: docker0: mtu 1500 qdisc noqueue state DOWN group default ссылка/эфир 02:42:5f:77:59:e9 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 глобальная область действия docker0 valid_lft навсегда 55: br-195a84347f94: mtu 1500 qdisc noqueue state UP group default ссылка/эфир 02:42:a6:46:7a:27 брд ff:ff:ff:ff:ff:ff инет 172. 25.0.1/16 brd 172.25.255.255 глобальная область действия br-195а84347ф94 valid_lft навсегда 57: vethb13ec38@if56: mtu 1500 qdisc noqueue master br-195a84347f94 состояние UP группа по умолчанию ссылка/эфир 92:e8:8a:e0:f1:7c brd ff:ff:ff:ff:ff:ff ссылка-netnsid 1 59: veth31971c4@if58: mtu 1500 qdisc noqueue master br-195a84347f94 состояние группы UP по умолчанию ссылка/эфир 4e:95:40:7d:78:93 brd ff:ff:ff:ff:ff:ff ссылка-netnsid 2 68: br-d0ad0289f7c7: mtu 1500 qdisc noqueue state UP group default ссылка/эфир 02:42:ef:83:ac:3e brd ff:ff:ff:ff:ff:ff инет 172.28.0.1/16 brd 172.28.255.255 глобальная область действия br-d0ad0289f7c7 valid_lft навсегда 70: veth07b736d@if69: mtu 1500 qdisc noqueue master br-d0ad0289f7c7 состояние UP группа по умолчанию ссылка/эфир f6:85:f1:48:45:8e brd ff:ff:ff:ff:ff:ff ссылка-netnsid 3 74: br-c2c3481624b2: mtu 1500 qdisc noqueue state UP group default ссылка/эфир 02:42:e8:3c:59:c0 brd ff:ff:ff:ff:ff:ff инет 172. 30.0.1/16 brd 172.30.255.255 область глобальная br-c2c3481624b2 valid_lft навсегда 76: вет98745d8@if75: mtu 1500 qdisc noqueue master br-c2c3481624b2 состояние группы UP по умолчанию ссылка/эфир 2a:70:8d:58:de:e8 brd ff:ff:ff:ff:ff:ff ссылка-netnsid 0 введите код сюда
IP-маршрут второго сервера:
по умолчанию через 38.242.224.1 dev eth0 proto static onlink 38.242.224.0/19 dev eth0 прото-область ядра ссылка src 38.242.229.63 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 172.25.0.0/16 dev br-195a84347f94 ссылка на область действия ядра src 172.25.0.1 172.28.0.0/16 разработчик br-d0ad0289Ссылка на область действия ядра f7c7 src 172.28.0.1 172.30.0.0/16 dev br-c2c3481624b2 ссылка на область ядра прото src 172.30.0.1
ping до шлюза работает, также работает ping до yahoo.com.
Возможно, цель состоит в том, чтобы первый сервер мог клонировать/извлекать репозиторий git из gitlab, который работает на втором сервере.