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

12 set 2022 6 min di lettura
Как использовать команду IP в Linux
Indice dei contenuti

Введение

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

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

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

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

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

ip [ OPTIONS ] OBJECT { COMMAND | help }

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

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

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

ip link help

Вы должны увидеть выходное сообщение, подобное следующему:

Usage: ip link add [link DEV] [ name ] NAME
 [ txqueuelen PACKETS ]
 [ address LLADDR ]
 [ broadcast LLADDR ]
 [ mtu MTU ] [index IDX ]
 [ numtxqueues QUEUE_COUNT ]
 [ numrxqueues QUEUE_COUNT ]
 type TYPE [ ARGS ]...


 TYPE:= { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |
 bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
 gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan |
 vti | nlmon | team_slave | bond_slave | ipvlan | geneve |
 bridge_slave | vrf | macsec }

При настройке сетевых интерфейсов вам необходимо запускать команды от имени пользователя 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
 inet6::1/128 scope host
 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 96:00:00:19:12:df brd ff:ff:ff:ff:ff:ff
 inet 195.201.18.78/32 brd 195.201.18.78 scope global eth0
 valid_lft forever preferred_lft forever
 inet6 2a01:4f8:1c1c:c73d::1/64 scope global
 valid_lft forever preferred_lft forever
 inet6 fe80::9400:ff:fe19:12df/64 scope link
 valid_lft forever preferred_lft forever

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

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

ip -4 addr

Вывод будет выглядеть следующим образом:

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
 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 inet 195.201.18.78/32 brd 195.201.18.78 scope global eth0
 valid_lft forever preferred_lft forever

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

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

ip addr show dev eth0

Вывод будет выглядеть следующим образом:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 96:00:00:19:12:df brd ff:ff:ff:ff:ff:ff
 inet 195.201.18.78/32 brd 195.201.18.78 scope global eth0
 valid_lft forever preferred_lft forever
 inet6 2a01:4f8:1c1c:c73d::1/64 scope global
 valid_lft forever preferred_lft forever
 inet6 fe80::9400:ff:fe19:12df/64 scope link
 valid_lft forever preferred_lft forever

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

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

ip addr add ADDRESS dev IFNAME

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

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

sudo ip address add 192.168.111.111/24 dev eth0

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

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

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

sudo ip address add 192.168.111.111/24 dev eth0
sudo ip address add 192.168.111.22/24 dev eth0

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

ip -4 addr show dev eth0

Вывод будет выглядеть следующим образом:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 inet 195.201.18.78/32 brd 195.201.18.78 scope global eth0
 valid_lft forever preferred_lft forever
 inet 192.168.111.111/24 scope global eth0
 valid_lft forever preferred_lft forever
 inet 192.168.111.22/24 scope global secondary eth0
 valid_lft forever preferred_lft forever

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

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

ip addr dev ADDRESS dev IFNAME

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

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

sudo ip address del 192.168.111.111/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 96:00:00:19:12:df 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 96:00:00:19:12:df 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 для назначения, удаления и просмотра таблицы маршрутизации ядра. Команды, наиболее часто используемые при работе с объектами маршрута: list, add и del.

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

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

ip route
ip route list SELECTOR
ip route list SELECTOR

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

ip route list
default via 172.31.1.1 dev eth0
 172.31.1.1 dev eth0 scope link
 192.168.111.0/24 dev eth0 proto kernel scope link src 192.168.111.22

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

ip r list 192.168.111.0/24
192.168.111.0/24 dev eth0 proto kernel scope link src 192.168.111.22

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

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

Добавьте маршрут на 192.168.111.0/24 через шлюз на 192.168.111.1

ip route add 192.168.111.0/24 via 192.168.111.1

Добавьте путь к 192.168.111.0/24, до которого можно добраться на устройстве eth0.

ip route add 192.168.111.0/24 dev eth0

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

ip route add default via 192.168.111.1 dev eth0

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

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

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

ip route del default

Удалить путь для 192.168.111.0/24 через шлюз 192.168.111.1

ip route del 192.168.111.0/24 via 192.168.111.1

Вывод

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

man ip

Чтобы выйти из экрана справки, введите q:

q
Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.