MyTetra Share
Делитесь знаниями!
Краткая памятка - как управлять роутингом в Linux через утилиту ip
Время создания: 30.03.2026 09:28
Текстовые метки: linux, ip, route, роутинг, настройка, управление, маршрут, маршрутизация
Раздел: Компьютер - Linux - Сеть в Linux
Запись: xintrea/mytetra_syncro/master/base/1774852100671bs2g7om/text.html на raw.githubusercontent.com

Здесь собираются различные примеры основных действий по управлению базовой маршрутизацией в Linux.



1. Как посмотреть сетевые устройства в Linux и узнать их сетвые адреса:



ip addr



Пример ответа:



1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host noprefixroute

valid_lft forever preferred_lft forever

2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

link/ether d1:5e:d3:a4:17:98 brd ff:ff:ff:ff:ff:ff

inet 172.26.1.35/24 brd 172.26.1.255 scope global dynamic noprefixroute enp2s0

valid_lft 689786sec preferred_lft 689786sec

inet6 fe80::da5e:d3ff:f9a5:1789/64 scope link noprefixroute

valid_lft forever preferred_lft forever

3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default

link/ether 08:42:f8:b5:3a:89 brd ff:ff:ff:ff:ff:ff

inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0

valid_lft forever preferred_lft forever



2. Как направить трафик для конкретного IP-адреса в определенный интерфейс:



ip route add <IP-адрес>/32 dev <Имя_сетевого_устройства>



Здесь под именем сетевого устройства понимает обычно имя вида: eth1, enp2s0 и тому подобные.


Под управлением в данном случае находится исходящий траффик. То есть, если в системе идет обращение к определенному IP-адресу, пакет будет направлен в указанный интерфейс.


По сути, эта команда создает новый маршрут.



3. Просмотр правил (маршрутов) роутинга:



ip route



Данная утилита не покажет, как именуются столбцы, которые она выводит. Общая логика вывода утилиты состоит в том, что в первом столбце пишется, куда доставить пакет. А дальше в строке пишутся различные настройки и правила, которые надо уметь разбирать.


Пример консольного вывода ip route:



default via 172.26.1.1 dev enp2s0 proto dhcp src 172.26.1.35 metric 100

169.254.0.0/16 dev enp2s0 scope link metric 1000

172.18.0.0/16 dev docker0 proto kernel scope link src 172.18.0.1 linkdown

172.26.1.0/24 dev enp2s0 proto kernel scope link src 172.26.1.35 metric 100



Если вместо места доставки указано ключевое слово default, то по этому маршруту пойдут все пакеты, для которых не написано специальных правил.


Вот что означают различные настройки в строке с информацией о маршруте:



via 172.26.1.1 - адрес следующего маршрутизатора. То есть, куда передать пакет.


dev eth0 - через какой интерфейс отправить пакет.


proto kernel - кто создал данный маршрут, может отсутсвовать. Основные стандартные значения:


kernel - маршрут был создан ядром при настройке интерфейса;

static - маршрут создан вручную через команду ip route add;

dhcp - маршрут был создан dhcp-сервером.


scope <scope> - область действия маршрута. Возможные значения:


link - работает только в пределах этого канала;

global - маршрут глобальный;

host - маршрут только для самого хоста.


src 192.168.1.100 - какой локальный ШЗ-адрес будет указан источником данного пакета в заголовке пакета.


metric 100 - приоритет маршрута, чем меньше - тем выше приоритет. Например, с метрикой 300 обычно задается резервный маршрут, который не является основным.


linkdown - эта строка появляется, когда интерфейс, предназначенный для данного маршрута, выключен.



4. Как удалить маршрут?



ip route del <частичное_или_полное_описание_маршрута>



Полное описание маршрута можно взять из вывода команды ip route.


Примеры:



ip route del 8.8.1.1/32 - удалить маршрут к конкретному IP-адресу


ip route del via 192.168.1.1 - удалить маршруты через определенный шлюз.


ip route del dev eth0 - удалить маршруты через определенный сетевой интерфейс.



В команде можно комбинировать условия:



ip route del 172.15.1.10 via 10.0.0.1 dev eth0



5. Как показать метрику для всех маршрутов?


Команда ip route показывает только те метрики, которые были заданы для маршрутов. Если метрика не задана, она не отображается, хотя в ядре она всё равно есть (и обычно равна 0). Чтобы увидеть метрики для всех маршрутов, можно воспользоваться командой route -n (не ip route !). Данная утилита считается устаревшей, но ее вывод гораздо удобнее. Во многих Linux эта утилита доступна только под суперпользователем root.



> route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 172.26.1.1 0.0.0.0 UG 100 0 0 enp2s0

169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp2s0

172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0

172.26.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования