Новые взгляды сквозь старые щели (Г. Лихтенберг).

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

6 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17 апреля 2019
Команда ip в Linux с примерами
Команда 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.

При настройке сетевых интерфейсов вы должны запускать команды как root или пользователь с привилегиями sudo, в противном случае команда выведет RTNETLINK answers: Operation not permitted.

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

 

При работе с объектом команды addr принимают следующую форму:

ip addr [ COMMAND ] ADDRESS dev IFNAME

 

Наиболее часто используемые команды объекта addr – это show, add и del.

 

Для отображения списка всех сетевых интерфейсов и связанного с ним 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.113.241/24 brd 192.168.113.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.

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

 

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

ip addr show dev eth0

 

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

ip addr add ADDRESS dev IFNAME

 

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

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

sudo ip address add 192.168.101.12/24 dev eth0

 

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

 

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

sudo ip address add 192.168.113.241/24 dev eth0
sudo ip address add 192.168.101.12/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.113.241/24 brd 192.168.113.255 scope global dynamic eth0
       valid_lft 3515sec preferred_lft 3515sec
    inet 192.168.101.12/24 scope global secondary eth0
       valid_lft forever preferred_lft forever

 

Синтаксис для удаления IP-адреса из интерфейса, как показано ниже:

ip addr del ADDRESS dev IFNAME

 

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

Для удаления адреса 192.168.101.12/24 из устройства eth0 введите:

sudo ip address del 192.168.101.12/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 DEVICE и желаемое состояние:

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.113.1 dev eth0 proto dhcp src 192.168.113.241 metric 100 
192.168.113.0/24 dev eth0 proto kernel scope link src 192.168.113.241 
192.168.113.1 dev eth0 proto dhcp scope link src 192.168.113.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.113.0/24 через шлюз в 192.168.113.1

ip route add 192.168.113.0/24 via 192.168.113.1

 

Добавьте маршрут к 192.168.113.0/24, который может быть достигнут на устройстве eth0.

ip route add 192.168.113.0/24 dev eth0

 

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

ip route add default via 192.168.113.1 dev eth0

 

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

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

ip route del default

 

Удалите маршрут для 192.168.113.0/24 через шлюз в 192.168.113.1

ip route del 192.168.113.0/24 via 192.168.113.1

 

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

2 комментария к Команда ip в Linux с примерами

  1. Тимур:

    Вожможно в статье опечатка в “ip addr dev ADDRESS dev IFNAME”. Я предполагаю, что первый dev, должен быть del.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close