Распределения на основе Linux имеют набор команд, которые обеспечивают способ настройки сети легким и мощным образом через командную строку. Этот набор команд доступен из пакета net-tools, который существует давно практически во всех распределениях, и включает команды такие как: ifconfig, route, nameif, iwconfig, iptunnel, netstat, arp.

Эти команды достаточны для настройки сети таким образом, как хотел бы любой начинающий или опытный пользователь Linux, но из-за развития ядра Linux за последние годы и не поддерживаемости этого упакованного набора команд они устаревают, и появляется более мощная альтернатива, которая может заменить все эти команды.
Эта альтернатива существует уже некоторое время и намного мощнее любой из этих команд. Остальные разделы подробно рассмотрят эту альтернативу и сравнят её с одной из команд из пакета net-tools, т.е. ifconfig.
ip – Замена для ifconfig
ifconfig существует уже давно и до сих пор используется для настройки, отображения и управления сетевыми интерфейсами многими, но теперь на существующих в распределениях Linux есть новая альтернатива, которая намного мощнее. Эта альтернатива – это команда ip
из пакета iproute2util.
Хотя эта команда может показаться немного сложной сначала, но она намного более широкая в функциональном плане, чем ifconfig. Она функционально организована на двух уровнях сетевого стека, т.е. Уровень 2 (Уровень Связи), Уровень 3 (Уровень IP) и выполняет работу всех вышеупомянутых команд из пакета net-tools.
В то время как ifconfig в основном отображает или изменяет интерфейсы системы, эта команда способна выполнять следующие задачи:
- Отображение или изменение свойств интерфейса.
- Добавление, удаление записей кеша ARP вместе с созданием новой статической записи ARP для хоста.
- Отображение MAC-адресов, связанных со всеми интерфейсами.
- Отображение и изменение таблиц маршрутизации ядра.
Одна из основных особенностей, которая отличает его от его древнего аналога ifconfig, заключается в том, что последний использует ioctl для конфигурации сети, что является менее оцениваемым способом взаимодействия с ядром, в то время как первый использует механизм сокетов netlink для того же самого, что является гораздо более гибким преемником ioctl для взаимодействия между ядром и пользовательским пространством с использованием rtnetlink (который добавляет возможность манипулирования сетевой средой).
Теперь мы можем начать подчеркивать особенности ifconfig и то, как они эффективно заменяются командой ip.
Команды ip против ifconfig
В следующем разделе подчеркиваются некоторые команды ifconfig и их замена с использованием команд ip:
Отображение всех сетевых интерфейсов в Linux
Одна из отличительных особенностей между ip и ifconfig состоит в том, что, в то время как ifconfig показывает только включенные интерфейсы, ip показывает все интерфейсы, включенные или выключенные.
Команда ifconfig
$ ifconfig

Команда ip
$ ip a

Добавление или удаление IP-адреса в Linux
Ниже приведена команда для назначения IP-адреса 192.168.80.174 интерфейсу eth0
.
ifconfig – Добавление/удаление IP-адреса
# ifconfig eth0 add 192.168.80.174
Синтаксис для добавления/удаления интерфейса с помощью команды ifconfig:
# ifconfig eth0 add 192.168.80.174 # ifconfig eth0 del 192.168.80.174
ip – Добавление/удаление IP-адреса
# ip a add 192.168.80.174 dev eth0
Синтаксис для добавления/удаления интерфейса с помощью команды ip:
# ip a add 192.168.80.174 dev eth0 # ip a del 192.168.80.174 dev eth0
Добавление MAC-адреса аппаратного обеспечения на сетевой интерфейс
Ниже приведена команда для установки аппаратного адреса интерфейса eth0
в указанное значение. Это можно проверить, проверив значение HWaddr
в выводе команды ifconfig.
ifconfig – Добавление MAC-адреса
Здесь синтаксис для добавления MAC-адреса с использованием команды ifconfig:
# ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – Добавление MAC-адреса
Здесь синтаксис для добавления MAC-адреса с использованием команды ip:
# ip link set dev eth0 address 00:0c:29:33:4e:aa
Настройка других конфигураций сетевого интерфейса
Помимо установки IP-адреса или MAC-адреса, другие конфигурации, которые можно применить к интерфейсу, включают:
- MTU (Максимальный размер передаваемого блока)
- Флаг многоадресной рассылки
- Длина очереди передачи
- Режим promiscuous
- Включить или отключить все многоадресные режимы
ifconfig – Другие конфигурации сети
ip – Другие конфигурации сети
a. Set MTU value to 2000.
# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000
b. Enable or Disable multicast flag.
# ifconfig eth0 multicast
# ip link set dev eth0 multicast on
c. Setting the transmit queue length.
# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200
d. Enabling or disabling promiscuous mode.
# ifconfig eth0 promisc
# ip link set dev eth0 promisc on
e. Enable or disable all multicast mode.
# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on
5. Включение или отключение сетевого интерфейса
Ниже приведены команды для включения или отключения определенного сетевого интерфейса.
ifconfig – Отключение/Включение сетевого интерфейса
Ниже приведена команда для отключения интерфейса eth0
, и это можно проверить по выводу ifconfig, который по умолчанию показывает только те интерфейсы, которые активны.
# ifconfig eth0 down
Чтобы повторно включить интерфейс, просто замените down на up.
# ifconfig eth0 up
ip – Отключение/Включение сетевого интерфейса
Ниже приведена команда ip в качестве альтернативы ifconfig для отключения определенного интерфейса. Это можно проверить по выводу команды 'ip a'
, которая по умолчанию показывает все интерфейсы, активны они или нет, но подчеркивает их статус вместе с описанием.
# ip link set eth0 down
Чтобы повторно включить интерфейс, просто замените down на up.
# ip link set eth0 up
6. Включить или отключить использование протокола ARP
Ниже приведены команды для включения или отключения протокола ARP на определенном сетевом интерфейсе.
ifconfig – Включение/Отключение протокола ARP
Команда включает протокол ARP для использования с интерфейсом eth0. Чтобы отключить эту опцию, просто замените arp на -arp
.
# ifconfig eth0 arp
ip – Включение/Отключение протокола ARP
Это команда – альтернатива ip для включения ARP на интерфейсе eth0. Чтобы отключить, просто замените on на off.
# ip link set dev eth0 arp on
Вывод
Таким образом, мы выделили особенности команды ifconfig и то, как их можно выполнить с помощью команды ip. В настоящее время дистрибутивы Linux предоставляют пользователю обе команды, чтобы он мог использовать их в зависимости от своего удобства. Итак, какая команда удобнее для вас, которую вы предпочитаете использовать? Укажите это в своих комментариях.
Если вы хотите узнать больше об этих двух командах, то вам следует ознакомиться с нашими предыдущими статьями, которые показывают некоторые практические примеры команд ifconfig и ip в более подробном виде.
Не пропустите: 15 примеров “ifconfig” для настройки сетевого интерфейса в Linux
Не пропустите: 10 примеров команды “ip” для настройки сетевого интерфейса в Linux
Source:
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/