Команда ip в Linux

Опубликовано admin - вт, 12/06/2022 - 11:52

В Linux команда ip используется для назначения адреса сетевому интерфейсу или настройки его параметров. Утилита заменила устаревшую команду ifconfig.

Примеры использования команды ip в Linux

Содержание

Возможности команды 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. Думаю, что они будут полезны вам.

Поделиться с друзьями