В Linux команда ip
используется для назначения адреса сетевому интерфейсу или настройки его параметров. Утилита заменила устаревшую команду ifconfig
.
Содержание
Возможности команды ip
Утилита позволяет выполнить следующее:
- узнать, какие интерфейсы настроены в системе;
- запросить статус IP-интерфейса;
- настроить локальный шлейф, Ethernet и другие IP-интерфейсы;
- отметить интерфейс как верхний или нижний;
- настроить и изменить стандартную и статическую маршрутизацию;
- настроить туннель через IP;
- показать запись кеша ARP или NDISC;
- назначить, удалить, настроить IP-адреса, маршруты, подсети и другую IP-информацию для IP-интерфейсов;
- получить список IP-адресов и информацию о свойствах;
- управлять и отображать состояния всей сети;
- собрать информацию об IP-адресах многоадресной рассылки;
- показать соседние объекты, то есть кеш ARP, сделать недействительным кеш ARP, добавить запись в кеш ARP и т. п.;
- установить или удалить запись маршрутизации;
- найти маршрут, по которому будет проходить адрес (скажем,
8.8.8.8
или192.168.2.24
);
изменить статус интерфейса.
Синтаксис
ip [ OPTIONS ] OBJECT { COMMAND | help }
Понимание синтаксиса ОБЪЕКТОВ
ОБЪЕКТЫ могут быть любым из следующих и могут быть записаны в полной или сокращенной форме:
- l, link
- Сетевое устройство
- a, addr, address
- Адрес протокола (IP или IPv6) на устройстве
- addrl, addrlabel
- Конфигурация метки для выбора адреса протокола
- n, neigh, neighbour
- Запись кеша ARP или NDISC
- r, route
- Запись таблицы маршрутизации
- ru, rule
- Правило в базе данных политик маршрутизации
- m, maddr, maddress
- Множественный адрес
- mr, mrouteЗапись кеша многоадресной маршрутизации
- t, tunnel
- Туннель через IP
- x, xfrm
- Фреймворк для протокола IPsec
Чтобы получить информацию о каждом объекте, используйте команду справки следующим образом:
oleg@mobile:~:$ ip a help
oleg@mobile:~:$ ip r help
Опции
- -v, -Version
- Вывод информации об утилите и её версии
- -s, -stats
- Вывод статистической информации
- -d, -details
- Вывод подробностей
- -r,-resolve
- Определение имён хостов с помощью DNS
- -h, -human
- Вывод данных в удобочитаемом виде
- -f, -family
- Вывод рабочего протокола
- -o, -oneline
- Вывод каждой записи с новой строки
- -a, -all
- Применение команды ко всем объектам
- -c, -color
- Вывод в цвете
- -br, -brief
- Вывод лишь базовую информации для удобства чтения
- -4
- Короткая запись для
-f inet
- -6
- Короткая запись для
-f inet-f inet6
- -B
- Короткая запись для
-f inet-f bridge
- -0
- Короткая запись для
-f inet -f link
Использование команды ip в Linux
Отображение информации о сетевых интерфейсах
Для вывода списка и отображения всех IP-адресов, связанных с сетевыми интерфейсами, используется следующая команда:
oleg@mobile:~:$ ip a
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
valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether e8:03:9a:0c:0b:c7 brd ff:ff:ff:ff:ff:ff
3: wlp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:c0:ca:5a:65:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s29u1u1
valid_lft 13704sec preferred_lft 13704sec
inet6 fe80::57a3:ddc7:f60a:2d8e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: wlp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether e6:a0:1e:03:34:80 brd ff:ff:ff:ff:ff:ff permaddr b8:03:05:ab:0f:04
oleg@mobile:~:$
Можно и так:
oleg@mobile:~:$ ip addr
Для выбора между IPv4 и IPv6, используется следующий синтаксис:
oleg@mobile:~:$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
3: wlp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.1.12/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s29u1u1
valid_lft 13491sec preferred_lft 13491sec
oleg@mobile:~:$
oleg@mobile:~:$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: wlp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 fe80::57a3:ddc7:f60a:2d8e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
oleg@mobile:~:$
Можно также можно указать и перечислить детали конкретного интерфейса TCP/IP:
oleg@mobile:~:$ ip a show wlp0s29u1u1
3: wlp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:c0:ca:5a:65:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s29u1u1
valid_lft 13280sec preferred_lft 13280sec
inet6 fe80::57a3:ddc7:f60a:2d8e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
oleg@mobile:~:$
Назначение IP-адреса интерфейсу
Для добавления адреса IPv4/IPv6 используется следующий синтаксис:
ip a add {ip_addr/mask} dev {interface}
Для назначения 192.168.1.200/255.255.255.0
для eth0
, введите:
ip a add 192.168.1.200/255.255.255.0 dev eth0
или так:
ip a add 192.168.1.200/24 dev eth0
Удаление IP-адреса из интерфейса
Для удаления IPv4/IPv6-адреса используется следующий синтаксис:
ip a del {ipv6_addr_OR_ipv4_addr} dev {interface}
Для удаления, например 192.168.1.200/24
из eth0
, введите:
ip a del 192.168.1.200/24 dev eth0
Изменение состояния устройства UP/DOWN
Здесь используется следующий синтаксис:
ip link set dev {DEVICE} {up|down}
Таким образом, чтобы перевести, например, устройство eth1
в состояние down
вводится команда:
ip link set dev eth1 down
Для подъёма вводится:
ip link set dev eth1 up
Изменение MTU устройства
С целью повышения производительности сети можно установить максимальные размеры единиц передачи (MTU).
Синтаксис команды будет таким:
ip link set mtu {NUMBER} dev {DEVICE}
Пример:
ip link set mtu 9000 dev eth0
Изменение MAC-адреса
MAC-адрес сетевой карты Linux (NIC) можно изменить следующим образом:
NIC="eno1" ## <-- My NIC name ##
ip link show $NIC
ip link set dev $NIC down
## set new MAC address ##
ip link set dev $NIC address XX:YY:ZZ:AA:BB:CC
ip link set dev $NIC up
Отображение всех IP-адресов
Вывод IP-адресов, присвоенных интерфейсам:
oleg@mobile:~:$ sudo ip -br -c addr showbr -c addr show
lo UNKNOWN 127.0.0.1/8 ::1/128
enp2s0 DOWN
wlp0s29u1u1 UP 192.168.1.12/24 fe80::57a3:ddc7:f60a:2d8e/64
wlp1s0 DOWN
oleg@mobile:~:$
Настройка вывода в цвете
Можно сделать вывод команды красивым, используя опцию -c
:
oleg@mobile:~:$ ip -c a
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
valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether e8:03:9a:0c:0b:c7 brd ff:ff:ff:ff:ff:ff
3: wlp0s29u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:c0:ca:5a:65:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s29u1u1
valid_lft 11525sec preferred_lft 11525sec
inet6 fe80::57a3:ddc7:f60a:2d8e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: wlp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 3e:3d:23:96:29:e4 brd ff:ff:ff:ff:ff:ff permaddr b8:03:05:ab:0f:04
oleg@mobile:~:$
Многие из приведённых здесь команд следует выполнять с осторожностью. Если вы допустите ошибку, вы потеряете связь с сервером. Вы должны проявлять особую осторожность при работе с удалённым сеансом на основе ssh
.
Заключение
В этой статье были приведены основные примеры использования в Linux команды ip
. Думаю, что они будут полезны вам.