Команда Linux ip с примерами

Команда Linux ip

Команда ip — мощный инструмент настройки сетевых интерфейсов, который должен знать любой системный администратор Linux. Она используется для включения и выключения интерфейсов, назначения и удаления адресов и маршрутов, управления ARP-кешем и многого другого.

В этой статье объясняется, как использовать команду ip, с помощью практических примеров и подробных объяснений наиболее распространенных опций.

Как использовать команду ip

Утилита ip является частью пакета iproute2, который установлен во всех современных дистрибутивах Linux.

Синтаксис команды ip следующий:

 ip [ OPTIONS ] OBJECT { COMMAND | help } 
Подкоманды команды Linux ip

ОБЪЕКТ — тип объекта, которым вы хотите управлять. Наиболее часто используемые объекты (или подкоманды):

  • link ( l ) — отображение и изменение сетевых интерфейсов.
  • address ( a ) — отображение и изменение IP-адресов.
  • route ( r ) — Отображение и изменение таблицы маршрутизации.
  • neigh ( n ) — отображение и управление соседними объектами (таблица ARP).

Объект можно указать в полной или сокращённой форме. Чтобы отобразить список команд и аргументов для каждого объекта, введите ip OBJECT help .

При настройке сетевых интерфейсов команды необходимо выполнять от имени пользователя root или пользователя с привилегиями sudo . В противном случае команда выведет RTNETLINK answers: Operation not permitted .

Конфигурации, установленные с помощью команды ip , не сохраняются. После перезапуска системы все изменения теряются. Чтобы сделать изменения постоянными, необходимо отредактировать файлы конфигурации, специфичные для дистрибутива, или добавить команды в скрипт запуска.

Отображение и изменение IP-адресов

При работе с объектом addr команды имеют следующий вид:

 ip addr [ COMMAND ] ADDRESS dev IFNAME

Наиболее часто используемые КОМАНДЫ объекта addr : show , add и del .

Отобразить информацию обо всех IP-адресах

Чтобы отобразить список всех сетевых интерфейсов и связанных с ними IP-адресов, введите следующую команду:

 ip addr show

Вывод будет выглядеть примерно так:

 1: lo:  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 2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever

Вы получите тот же результат, если пропустите команду show и введете: ip addr .

Если вы хотите отобразить только IP-адреса IPv4 или IPv6 , используйте ip -4 addr или ip -6 addr .

Отображение информации об одном сетевом интерфейсе

Чтобы получить информацию о конкретном сетевом интерфейсе, используйте ip addr show dev а затем имя устройства. Например, чтобы запросить информацию eth0 , введите:

 ip addr show dev eth0

Назначение IP-адресов интерфейсу

Чтобы назначить IP-адрес интерфейсу, используйте следующий синтаксис:

 ip addr add ADDRESS dev IFNAME

Где IFNAME — имя интерфейса, а ADDRESS — IP-адрес, который вы хотите назначить интерфейсу.

Чтобы добавить адрес 192.168.121.45 с сетевой маской 24 к устройству eth0 , введите:

 sudo ip address add 192.168.121.45/24 dev eth0

В случае успешного выполнения команда не выведет никаких данных. Если интерфейс не существует, вы получите Cannot find device "eth0" .

Назначить несколько IP-адресов одному интерфейсу

С помощью ip можно назначить несколько адресов одному интерфейсу. Например:

 sudo ip address add 192.168.121.241/24 dev eth0 sudo ip address add 192.168.121.45/24 dev eth0

Чтобы подтвердить назначение IP-адресов, ip -4 addr show dev eth0 или ip -4 a show dev eth0 :

 2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever

Удалить IP-адрес из интерфейса

Синтаксис удаления IP-адреса из интерфейса следующий:

 ip addr dev ADDRESS dev IFNAME

IFNAME — имя интерфейса, а ADDRESS — IP-адрес, который вы хотите удалить из интерфейса.

Чтобы удалить адрес 192.168.121.45/24 с устройства eth0, введите:

 sudo ip address del 192.168.121.45/24 dev eth0

Отображение и изменение сетевых интерфейсов

Для управления и просмотра состояния сетевых интерфейсов используйте объект link .

При работе с объектами link наиболее часто используются команды: show , set , add и del .

Отображение информации о сетевых интерфейсах

Чтобы отобразить список всех сетевых интерфейсов, введите следующую команду:

 ip link show
 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

В отличие от ip addr show , ip link show не выводит информацию об IP-адресах, связанных с устройством.

Чтобы получить информацию о конкретном сетевом интерфейсе, используйте ip link show dev а затем имя устройства. Например, чтобы запросить информацию eth0 , введите:

 ip link show dev eth0
 2: eth0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

Изменить статус интерфейса UP/DOWN

Чтобы включить или отключить интерфейсы, используйте команду ip link set dev а затем имя устройства и желаемое состояние:

 ip link set dev { DEVICE } { up | down }

Например, чтобы включить интерфейс eth0 , введите:

 ip link set eth0 up

И принести если офлайн

 ip link set eth0 down

Отображение и изменение таблицы маршрутизации

Для назначения, удаления и отображения таблицы маршрутизации ядра используйте объект route . Наиболее часто используемые команды при работе с объектами route: list , add и del .

Показать таблицу маршрутизации

Чтобы получить список записей маршрутов ядра, используйте одну из следующих команд:

 ip route ip route list ip route list SELECTOR

При использовании без SELECTOR команда выведет список всех записей маршрутов в ядре:

 ip route list
 default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100 192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241 192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100

Чтобы отобразить маршрутизацию только для определенной сети, например, 172.17.0.0/16 , введите:

 ip r list 172.17.0.0/16
 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown

Добавить новый маршрута

Чтобы добавить новую запись в таблицу маршрутизации, используйте команду route add за которой укажите имя сети или устройства.

Добавьте маршрут к 192.168.121.0/24 через шлюз 192.168.121.1

 ip route add 192.168.121.0/24 via 192.168.121.1

Добавьте маршрут к 192.168.121.0/24, к которому можно получить доступ с устройства eth0.

 ip route add 192.168.121.0/24 dev eth0

Чтобы добавить маршрут по умолчанию, используйте ключевое слово default . Следующая команда добавит маршрут по умолчанию через локальный шлюз 192.168.121.1 , доступный через устройство eth0 .

 ip route add default via 192.168.121.1 dev eth0

Удалить маршрута

Чтобы удалить запись из таблицы маршрутизации, используйте команду route add . Синтаксис удаления маршрута такой же, как и при его добавлении.

Следующая команда удалит маршрут по умолчанию:

 ip route del default

Удалить маршрут для 192.168.121.0/24 через шлюз 192.168.121.1

 ip route add 192.168.121.0/24 via 192.168.121.1

Заключение

К настоящему моменту вы должны хорошо понимать, как использовать команду ip в Linux. Для получения дополнительной информации о других параметрах ip посетите страницу руководства по команде ip или введите man ip в терминале.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

IP- терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *