Поиск по сайту:

24 полезных «IP» команды для настройки сетевых интерфейсов


Кратко. В этом руководстве мы обсудим некоторые практические примеры команды ip. К концу этого руководства пользователи смогут эффективно выполнять сетевые задачи в Linux из интерфейса командной строки.

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

Команда ip — это новая сетевая утилита командной строки, которая используется для назначения IP-адреса сетевому интерфейсу или настройки/обновления полезных сетевых переменных в системе Linux.

Он является частью пакета iproute2 и предлагает несколько задач сетевого администрирования, таких как включение или отключение сетевых интерфейсов, назначение и удаление IP-адресов и маршрутов, управление кэшем ARP и многое другое.

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

Команда ifconfig устарела и заменена командой ip во всех современных дистрибутивах Linux. Однако команда ifconfig по-прежнему работает и доступна для большинства дистрибутивов Linux.

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

1. Настройте статический IP-адрес навсегда в Linux.

Чтобы навсегда настроить статический IP-адрес в Linux, вам необходимо обновить или отредактировать файл конфигурации сети, чтобы назначить статический IP-адрес системе. Вы должны быть суперпользователем с командой su (переключить пользователя) из терминала или командной строки.

Установите статический IP-адрес в системах RHEL

Откройте и отредактируйте файлы конфигурации сети для (eth0 или eth1) с помощью вашего любимого текстового редактора. Например, назначение IP-адреса интерфейсу eth0 следующим образом в дистрибутивах на основе RHEL.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Установите статический IP-адрес в системах Debian

Чтобы настроить постоянный статический IP-адрес, вам необходимо изменить файл конфигурации сетевого интерфейса /etc/network/interfaces, чтобы внести постоянные изменения, как показано ниже для дистрибутивов на основе Debian.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

Затем перезапустите сетевые службы после ввода всех данных с помощью следующей команды.

sudo systemctl restart networking

2. Временная настройка статического IP-адреса в Linux

Для временных конфигураций сети вы можете использовать команду ip, чтобы на лету назначить IP-адрес определенному интерфейсу (eth2).

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

Примечание. К сожалению, все эти настройки будут потеряны после перезагрузки системы.

3. Как отобразить все сетевые интерфейсы

В команде ip объект ссылки представляет сетевой интерфейс. Мы можем использовать команду show для отображения всех сетевых интерфейсов.

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

ip link show

В приведенном выше выводе показаны сведения обо всех сетевых интерфейсах, такие как имя интерфейса, флаги, статус, адрес канала, широковещательный адрес и т. д.

4. Как проверить IP-адрес определенного сетевого интерфейса

Чтобы получить информацию о глубине вашего отдельного сетевого интерфейса, такую как IP-адрес и информацию о MAC-адресе, используйте следующую команду, как показано ниже.

ip link show eth2

До сих пор мы использовали объект link, показывающий подробную информацию о сетевых интерфейсах. Однако он не показывает IP-адрес, связанный с сетевым интерфейсом. Чтобы преодолеть это ограничение, мы можем использовать объект addr с командой ip.

Давайте разберемся в этом на примере.

ip addr show

Здесь мы видим, что теперь выходные данные показывают IP-адреса всех сетевых интерфейсов вместе с другими деталями.

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

ip addr show eth2

5. Как отобразить IP-адрес в цветном выводе

Команда ip показывает подробную информацию об объектах сети. Однако иногда нам необходимо взглянуть на ограниченную информацию. В таких случаях мы можем включить цветной вывод. Эта опция выделяет важные детали разными цветами.

Давайте воспользуемся опцией --color команды, чтобы отобразить вывод в разных цветах:

ip --color addr show eth2

В приведенном выше выводе мы видим, что имя интерфейса, сетевой адрес и состояние выделены разными цветами.

6. Как отобразить IP-адрес в формате JSON

В предыдущих примерах мы видели, что ip команда отображает значимую информацию. Однако проанализировать необработанный вывод и извлечь значимую информацию с помощью элементарных скриптов — непростая задача. В таких случаях мы можем указать команде ip сгенерировать выходные данные в формате JSON.

Итак, давайте воспользуемся опцией -j с командой, чтобы отобразить тот же вывод в формате JSON:

ip -j link show eth2

Этот метод удобен при автоматизации, поскольку JSON является широко распространенным форматом и существует множество библиотек/инструментов анализатора JSON, доступных на различных языках программирования.

7. Как сделать вывод JSON более читабельным

В предыдущем примере мы использовали параметр -j для отображения вывода в формате JSON. Формат JSON по умолчанию компактен и экономит место. Однако вывод нелегко прочитать из-за отсутствия отступов.

Чтобы преодолеть это ограничение, мы можем использовать опцию -p, которая делает вывод более читабельным за счет отступа. Давайте поймем это на примере ниже:

ip -j -p link show eth2

Здесь мы видим, что тот же вывод гораздо более читабелен по сравнению с предыдущими примерами.

8. Как удалить IP-адрес из сетевого интерфейса

В предыдущем примере мы использовали подкоманду add для назначения IP-адреса. Аналогичным образом мы можем использовать подкоманду del для удаления определенного IP-адреса.

Следующая команда удалит назначенный IP-адрес из данного интерфейса (eth2).

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

Теперь давайте проверим, что IP-адрес был удален:

ip -j -p addr show eth2

В приведенном выше выводе мы видим, что сетевой интерфейс eth2 теперь имеет только один IP-адрес.

9. Как включить сетевой интерфейс

Флаг «up» с именем интерфейса (eth2) включает сетевой интерфейс. Например, следующая команда активирует сетевой интерфейс eth2.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

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

ip -j -p link show eth2 | grep operstate

10. Как отключить сетевой интерфейс

Флаг «down» с именем интерфейса (eth2) отключает сетевой интерфейс. Например, следующая команда деактивирует сетевой интерфейс eth2.

ip link set eth2 down
OR
sudo ip link set eth2 down

Теперь давайте проверим состояние сетевого интерфейса eth2:

ip -j -p link show eth2 | grep operstate

Приведенный выше вывод показывает измененное состояние сетевого интерфейса.

11. Как очистить IP-адреса сетевого интерфейса

В предыдущем примере мы увидели, как использовать подкоманду del для удаления IP-адреса. Однако иногда нам необходимо удалить все IP-адреса определенного сетевого интерфейса. В таких случаях мы можем использовать подкоманду flush.

Сначала используйте подкоманду flush, чтобы удалить все IP-адреса сетевого интерфейса eth2:

sudo ip addr flush eth2

Теперь проверим, что все IP-адреса сетевого интерфейса eth2 удалены:

ip -j -p addr show eth2

В приведенном выше выводе поле addr_info показывает пустой массив JSON. Это означает, что с сетевым интерфейсом eth2 не связан какой-либо IP-адрес.

12. Как проверить таблицу маршрутизации

Таблица маршрутизации хранит необходимую информацию для пересылки сетевого пакета в правильный пункт назначения. Мы можем использовать объект route команды ip для отображения правил маршрутизации.

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

ip route show

В приведенном выше выводе первый столбец представляет пункт назначения, а последний столбец представляет исходный IP-адрес.

13. Как добавить новый статический маршрут

Зачем вам добавлять статические маршруты или маршруты вручную, если трафик не должен проходить через шлюз по умолчанию? Нам нужно добавить статические маршруты для передачи трафика от наилучшего способа достижения пункта назначения.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

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

ip route show

15. Как удалить статический маршрут

Подкоманда del удаляет определенную запись из таблицы маршрутизации. Например, команда ниже удаляет запись маршрута устройства eth2:

sudo ip route del 172.19.1.0/24

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

ip route show

16. Как добавить постоянные статические маршруты

Все вышеуказанные маршруты будут потеряны после перезагрузки системы. Чтобы добавить постоянный статический маршрут, отредактируйте файл /etc/sysconfig/network-scripts/route-eth2 (мы сохраняем статический маршрут для (eth2). По умолчанию Файла route-eth2 там не будет, и его необходимо создать.

Установить постоянный маршрут в системах RHEL

vi /etc/sysconfig/network-scripts/route-eth2

и добавьте следующие строки, сохраните и выйдите.

172.19.1.0/24 via 172.19.1.2 dev eth2

Установить постоянный маршрут в системах Debian

Откройте файл /etc/network/interfaces и в конце добавьте постоянные статические маршруты. IP-адреса могут отличаться в вашей среде.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

Затем перезапустите сетевые службы после ввода всех данных с помощью следующей команды.

sudo systemctl restart networking

17. Как добавить шлюз по умолчанию

В сети шлюз по умолчанию играет важную роль. Он используется, когда таблица маршрутизации не содержит никакой информации о пункте назначения.

Шлюз по умолчанию можно указать глобально или для файлов конфигурации конкретного интерфейса. Преимущество шлюза по умолчанию заключается в том, что в системе присутствует более одного сетевого адаптера. Вы можете добавить шлюз по умолчанию на лету, как показано ниже команды.

Сначала давайте добавим сетевой интерфейс eth0 в качестве шлюза по умолчанию:

sudo ip route add default via 172.17.0.1

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

ip route show

Обратите внимание, что мы выполнили эту команду на тестовой машине. Будьте осторожны при использовании этой команды в производственной среде.

18. Как удалить шлюз по умолчанию

Мы можем использовать следующую команду для удаления шлюза по умолчанию:

sudo ip route del default

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

ip route show

19. Как отобразить ARP-кэш

ARP означает Протокол разрешения адресов, который используется для поиска MAC-адреса, связанного с конкретным IP-адресом.

Мы можем использовать объект neigh с командой ip для отображения кэша ARP:

ip neigh show

В приведенной выше команде ржание представляет соседние объекты.

20. Как добавить запись ARP

Чтобы создать новую запись ARP, мы можем использовать подкоманду add с объектом neigh.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Теперь давайте перечислим записи кэша ARP:

ip neigh show

В приведенном выше выводе мы видим новую запись для сетевого интерфейса eth2.

21. Как удалить запись ARP

Как и другие сетевые объекты, мы можем использовать подкоманду del для удаления записи ARP. Например, следующая команда удаляет запись ARP сетевого интерфейса eth2:

sudo ip neigh del 172.19.1.0 dev eth2

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

ip neigh show 

22. Как очистить записи ARP

Мы можем использовать подкоманду flush для удаления нескольких записей ARP. Чтобы понять это, сначала добавьте несколько записей ARP со статусом STALE:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

Затем убедитесь, что новые записи были успешно добавлены:

ip neigh show

Затем очистите все записи, используя следующую команду:

sudo ip neigh flush all

Наконец, убедитесь, что все записи удалены:

ip neigh show

23. Как установить MTU для сетевого интерфейса

MTU означает Максимальная единица передачи, которая представляет собой наибольший размер пакета, который может быть передан за одну транзакцию. Мы можем манипулировать размером MTU в соответствии с нашими требованиями к производительности.

Сначала найдем MTU сетевого интерфейса eth2:

ip -j -p link show eth2 | grep mtu

Затем обновите размер MTU сетевого интерфейса eth2 до 3000:

sudo ip link set mtu 3000 dev eth2

Наконец, убедитесь, что MTU успешно обновлен:

ip -j -p link show eth2 | grep mtu

24. Как изменить сетевой Mac-адрес

Команда ip позволяет нам изменить MAC-адрес сетевого интерфейса. Для этого мы можем использовать подкоманду set с объектом ссылки:

Сначала укажите текущий MAC адрес сетевого интерфейса eth2:

ip -j -p link show eth2 | grep address

Затем измените MAC-адрес сетевого интерфейса с помощью следующей команды:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

Наконец, убедитесь, что MAC-адрес был изменен:

ip -j -p link show eth2 | grep address

Пожалуйста, обратитесь к странице руководства, выполнив man ip из терминала/командной строки, чтобы узнать больше об IP-команде.

man ip
Заключение

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

Знаете ли вы какой-нибудь другой лучший пример команды ip в Linux? Поделитесь с нами своим мнением в комментариях ниже.