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

Linux ip Command with Examples

25 Мая 2020 | Терминал

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

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

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


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

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

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

ip [ OPTIONS ] OBJECT { COMMAND | help }
 

OBJECT - это тип объекта, которым вы хотите управлять. Наиболее часто используемые объекты (или подкоманды):

  • 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: <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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 .

Если вы хотите отображать только IPv4 или IPv6 IP-адреса, используйте 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 link set dev имя устройства и желаемое состояние:

ip link set dev {DEVICE} {up|down}
 
Например, чтобы вывести интерфейс в eth0 онлайн, вы должны набрать:

ip link set eth0 up 

И вывести если офлайн

ip link set eth0 down 

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

Для назначения, удаления и отображения таблицы маршрутизации ядра используйте 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 

Вывод

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


    Комментарии

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

Загрузка комментариев...