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

Команда 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
свой терминал.