img

Команда IP в Linux: руководство с примерами

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Команда ip - это сетевой инструмент Linux для системных и сетевых администраторов. IP означает Интернет-протокол и, как следует из названия, инструмент используется для настройки сетевых интерфейсов. В старых дистрибутивах Linux использовалась команда ifconfig, которая работает аналогично. Однако ifconfig имеет ограниченный диапазон возможностей по сравнению с командой ip.

В этом руководстве мы рассмотрим все важные операции, которые команда ip может выполнять в Linux.

Команда IP в Linux

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

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

ip [OPTION] OBJECT {COMMAND | help}

К объектам OBJECT (или подкомандам), которые вы будете использовать чаще всего, относятся:

  1. link (l) - используется для отображения и изменения сетевых интерфейсов
  2. address (addr/a) - используется для отображения и изменения адресов протокола (IP, IPv6)
  3. route (r) - используется для отображения и изменения таблицы маршрутизации
  4. neigh (n) - используется для отображения и управления соседними объектами (таблица ARP)

Они могут использоваться как в полной, так и сокращенной форме.

Есть много других доступных объектов и команд. Чтобы увидеть полный список, введите следующую команду:

ip help
ip help

Для выполнения команд вы можете использовать либо полную, либо сокращенную формы. Например, ip link и ip l будут давать одинаковые результаты.

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

Предупреждение: по умолчанию система не сохраняет изменения перманентно. После перезапуска Linux-сервера вновь измененное состояние будет потеряно. Есть два способа сделать ваши настройки постоянными: добавить команды в сценарий запуска или отредактировать дистрибутивные файлы конфигурации.

Управление и отображение сетевых интерфейсов

Вы можете получить список всех параметров команды link, набрав:

ip link help
ip link

Получить информацию о сетевом интерфейсе

Чтобы увидеть информацию канального уровня обо всех доступных устройствах (у которых загружен драйвер), используйте команду:

ip link show

Пример вывода:

1: lo:  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:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 12:24:01:8c:67:45 brd ff:ff:ff:ff:ff:ff

Если вы хотите, чтобы команда отображала информацию для одного конкретного устройства, введите следующее:

ip link show dev [device]

Чтобы просмотреть статистику по всем сетевым интерфейсам (такие детали, как переданные или отброшенные пакеты или даже ошибки), используйте:

ip -s link

Вы также можете увидеть аналогичную информацию для отдельного сетевого интерфейса:

ip -s link ls [interface]

Если вам нужно больше подробностей, добавьте еще -s в синтаксис:

ip -s -s link ls [interface]

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

ip link ls up

Изменить статус сетевого интерфейса

Если вы хотите включить сетевой интерфейс, используйте команду:

ip link set [interface] up

Отключите интерфейс, введя:

ip link set [interface] down

Команда ip link позволяет вам изменять очередь передачи, ускоряя или замедляя интерфейсы в соответствии с вашими потребностями и аппаратными возможностями.

ip link set txqueuelen [number] dev [interface]

Вы можете установить MTU (Maximum Transmission Unit) для улучшения производительности сети:

ip link set mtu [number] dev [interface]

Чтобы узнать все опции команды link, наберите:

ip link help
ip link

Мониторинг и управление IP-адресами

Узнайте все команды address, набрав следующее:

ip addr help
ip addr

Мониторинг IP-адресов

Выведите все устройства с помощью следующей команды:

ip addr

Чтобы вывести список всех сетевых интерфейсов и связанных IP-адресов, используйте команду:

ip addr show

Пример вывода:

1: lo:  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:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 51:55:07:8a:62:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.120.24/24 brd 192.168.120.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

Вы также можете увидеть информацию об отдельной сети:

ip addr show dev [interface]

Чтобы получить список всех IPv4 адресов, используйте:

ip -4 addr

Чтобы получить список всех IPv6 адресов, используйте:

ip -6 addr

Как добавить IP-адрес в Linux

Добавьте IP-адрес в интерфейс с помощью команды:

ip addr add [ip_address] dev [interface]

Если указанный интерфейс не существует, отобразится сообщение: Cannot find device [interface]

Чтобы добавить два адреса на один интерфейс также используйте эту команду:

ip address add 192.168.1.41/24 dev eth0
ip address add 192.168.1.40/24 dev eth0

Если вам нужно добавить широковещательный (broadcast) адрес для интерфейса, используйте команду:

ip addr add brd [ip_address] dev [interface]

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

ip addr del [ip_address] dev [interface]

Управление и отображение таблицы IP-маршрутизации

Просмотрите полный список команд ip routeс помощью следующей команды:

ip route help
ip route

Показать таблицу маршрутизации IP

Для просмотра всех записей в таблице маршрутизации используйте одну из следующих команд:

ip route
ip route list

Пример вывода:

default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.241 metric 100 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.241 
192.168.1.1 dev eth0 proto dhcp scope link src 192.168.1.241 metric 100 

С помощью команд, приведенных выше, выходные данные отображают все записи маршрута в ядре. Если вам нужно сузить поиск, добавьте объект SELECTOR:

ip route list SELECTOR

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

ip route list [ip_address]

Изменить таблицу IP-маршрутизации

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

ip route add [ip_address] dev [interface]

Или вы можете добавить новый маршрут через шлюз, набрав:

ip route add [ip_address] via [gateway_IP]

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

ip route add default [ip_address] dev [device]

ip route add default [network/mask] via [gateway_IP]

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

ip route del [ip_address]

ip route del default

ip route del [ip_address] dev [interface]

Отображение и изменение IP-записей соседей

При помощи команды ip neigh можно манипулировать таблицами ARP (Address Resolution Protocol). Это аналог команды arp

Для получения полного списка всех параметров команды neigh используйте:

ip neigh help
ip neigh

Отображение IP-адресов соседей

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

ip neigh show

Выходные данные показывают MAC-адреса устройств, которые являются частью системы, и их состояние. Состояние устройства может быть:

  • REACHABLE - означает валидную, достижимую запись до истечения таймаута.
  • PERMANENT - означает постоянную запись, которую может удалить только администратор
  • STALE - означает действительную, но недоступную запись
  • DELAY - означает, что ядро все еще ожидает проверки из устаревшей записи

Изменить IP-записи соседей

Добавьте новую запись в таблицу с помощью команды:

ip neigh add [ip_address] dev [interface]

Или удалите существующую запись ARP:

ip neigh del [ip_address] dev [interface]
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker