Конфигурация сетевых интерфейсов: команды ifconfig и ip.
Life-Hack - Linux/Хакинг/Хакер/ИБ/OsintКак сетевые администраторы или кто-либо, кто занимается устранением неполадок в сети, вы часто сталкиваетесь с терминами «ifconfig» и «ip». Обе эти команды используются в операционных системах на базе Unix для настройки сетевого интерфейса, но что их отличает? В этой статье мы рассмотрим различия, углубимся в некоторые примеры, чтобы лучше понять эти команды.
Утилита ifconfig «interface configuration» используется для администрирования системы/сети в операционных системах Unix/Linux для настройки, управления и запроса параметров сетевого интерфейса через интерфейс командной строки или в сценариях настройки системы.
Команда «ifconfig» используется для отображения информации о текущей конфигурации сети, настройки IP-адреса, сетевой маски или широковещательного адреса для сетевого интерфейса, создания псевдонима для сетевого интерфейса, настройки аппаратного адреса и включения или отключения сетевых интерфейсов.
Для начала давайте просмотрим список интерфейсов, подключенных к вашей системе и активированных в данный момент. Для этого достаточно выполнить команду без параметров:
sudo ifconfig
Вы можете вывести только информацию про определенный интерфейс, например, про eth0:
sudo ifconfig eth0
С помощью опции -a вы можете вывести все интерфейсы, даже те, которые сейчас отключены:
sudo ifconfig -a
Чтобы посмотреть список интерфейсов с минимальной информацией о них используйте опцию -s:
sudo ifconfig -s
Чтобы включить интерфейс используется команда ifconfig eth0 up:
sudo ifconfig eth0 up
Чтобы отключить - down:
sudo ifconfig eth0 down
Вы можете получить более подробную информацию об ошибках с помощью опции -v:
sudo ifconfig -v
Включить поддержку протокола ARP для интерфейса:
sudo ifconfig eth0 arp
А чтобы отключить:
sudo ifconfig eth0 -arp
Включить неразборчивый режим, в котором интерфейс принимает все, проходящие через него пакеты:
sudo ifconfig eth0 promisc
А чтобы отключить:
sudo ifconfig eth0 -promisc
С помощью команды netmask вы можете установить маску сети для интерфейса:
sudo ifconfig eth0 netmask 255.255.255.0
Чтобы добавить ip адрес для интерфейса используйте просто укажите его после интерфейса:
sudo ifconfig eth0 192.168.1.11
Команда broadcast позволяет установить широковещательный адрес:
sudo ifconfig eth0 broadcast 192.168.1.255
С помощью команды hw вы можете установить аппаратный адрес или так называемый, MAC адрес. Здесь, кроме самого адреса нужно указать тип сети, ether для проводного подключения Ethernet:
sudo ifconfig eth0 hw ether BC:AE:C5:BE:8B:B7
С помощью mtu вы можете изменить максимальный размер пакета:
sudo ifconfig eth0 mtu 1000
Однако примерно с 2009 года команда «ip» начала заменять традиционную команду ifconfig. Команда «ip» является частью пакета iproute2, который активно поддерживается, в отличие от пакета net-tools.
Команда ip предоставляет гораздо больше возможностей по сравнению с ifconfig. Например, он обеспечивает расширенную маршрутизацию, туннелирование и даже политику. Он также предлагает более простой синтаксис и согласованный вывод, что упрощает использование в сценариях или программировании.
Вот пример использования команды «ip»:
ip addr
Например, если вы хотите подключить сетевой интерфейс:
sudo ip link set eth0 up
Хотя ifconfig в основном используется для настройки сетевых интерфейсов, «ip» может делать гораздо больше. Он может настраивать маршруты, туннели и предоставлять расширенную сетевую статистику.
Например, чтобы отобразить таблицу маршрутизации, вы должны использовать:
ip route show
Хотя ifconfig имеет свое историческое значение и до сих пор находит применение благодаря своей простоте и привычности, команда «ip» предлагает более мощное и комплексное решение для настройки сети и устранения неполадок. Он активно поддерживается, обладает более широким набором функций и полностью поддерживает IPv6, что делает его более актуальным в современных сетевых сценариях.