Ifconfig
ifconfig (сокращение от interface configuration) — команда для UNIX и UNIX‐подобных операционных систем, используемая для настройки и управления сетевыми интерфейсами. Является инструментом для назначения IP-адресов, изменения параметров адаптера и диагностики состояния сетевых интерфейсов. Первый вариант появился в 1983 году вместе с BSD.
Общие сведения
Синтаксис
ifconfig [interface] ifconfig interface [aftype] options | address ...
Описание
Команда ifconfig служит аналогом IPconfig в Windows, однако имеет иной набор опций и предоставляет более широкий функционал. Используется для назначения сетевого адреса, изменения параметров сетевого адаптера и протокола IP. В большинстве *nix-систем она применяется на этапе загрузки для первоначальной настройки сетевых интерфейсов; далее — обычно только при отладке, изменении конфигурации сети или восстановлении системы.
Подробное описание опций и примеров доступно в руководстве по команде («man ifconfig», например, в FreeBSD).
Если команда запускается без аргументов, ifconfig выводит сведения о состоянии активных интерфейсов. Если задан только один аргумент-интерфейс, отображается информация лишь о нём; если указан параметр -a, выводятся сведения обо всех интерфейсах, включая неактивные. В остальных случаях команда конфигурирует указанный интерфейс.
В современных дистрибутивах Linux утилита ifconfig считается устаревшей и заменена на инструменты из пакета iproute2, а основные функции перешли к утилите ip. Тем не менее, в UNIX-системах ifconfig по-прежнему широко используется.
Семейство протоколов
Если после имени интерфейса указывается имя протокольного семейства, оно будет применяться при интерпретации и выводе всех адресов интерфейса. Поддерживаются семейства:
Опции
| Опция | Описание |
|---|---|
| interface | Имя сетевого интерфейса. Обычно состоит из имени драйвера и номера устройства, например: eth0 (первый Ethernet-интерфейс). |
| up | Включает интерфейс. Применяется также после ifconfig down. Эта операция происходит автоматически при установке первого адреса; при повторном включении аппаратное обеспечение может быть инициализировано заново. |
| down | Отключает интерфейс. Система перестаёт использовать его для передачи и приёма пакетов, отключает маршруты, связанные с этим интерфейсом. |
| arp | Включает использование протокола ARP, позволяющего сопоставлять сетевые адреса и физические адреса на уровне передачи данных. |
| -arp | Отключает использование протокола ARP. |
| promisc | Включает режим перехвата всех пакетов (promiscuous mode). Интерфейс принимает все пакеты в сегменте, даже адресованные другим устройствам; используется для диагностики сети, перехвата и анализа трафика (например, с помощью tcpdump), но также применяется злоумышленниками для перехвата данных. |
| -promisc | Запрещает promiscuous mode. |
| allmulti | Включает режим all-multicast — интерфейс принимает все многоадресные (multicast) пакеты. |
| -allmulti | Отключает all-multicast режим. |
| metric N | Задаёт стоимость маршрутизации (routing metric) для интерфейса, вместо значения по умолчанию (0). Большая стоимость уменьшает приоритет маршрута. |
| mtu N | Устанавливает максимальный размер пакета (maximum transmission unit, MTU) для интерфейса. Может быть полезно при нестабильной связи или необходимости ручной настройки туннелей. |
| dstaddr addr | Устанавливает адрес удалённой стороны для интерфейсов точка-точка (point-to-point, например, PPP). Аргумент устарел, предпочтительно использовать pointopoint. |
| netmask addr | Устанавливает сетевую маску интерфейса. По умолчанию определяется классом IP-адреса, но может быть задана вручную. |
| add addr/prefixlen | Добавляет IPv6-адрес для интерфейса. |
| del addr/prefixlen | Удаляет IPv6-адрес с интерфейса. |
| tunnel aa.bb.cc.dd | Создаёт устройство-туннель SIT (IPv6-в-IPv4) к заданному адресу. |
| irq | Устанавливает аппаратный номер прерывания (IRQ) для устройства (не поддерживается всеми драйверами). |
| io_addr addr | Устанавливает базовый адрес области ввода-вывода устройства. |
| mem_start addr | Устанавливает адрес начала области разделяемой памяти, используемой устройством (актуально для ограниченного числа устройств). |
| media type | Задаёт физический порт или тип носителя (например, 10base2, 10baseT, AUI, auto); поддержка опции зависит от драйвера. |
| bootproto [[static][dhcp]] | Указывает способ получения IP-адреса — статический (описан явно пользователем) или динамический (через DHCP). |
| broadcast [addr] | Устанавливает широковещательный (broadcast) адрес интерфейса. |
| pointopoint [addr] | Включает или настраивает режим точка-точка (point-to-point), при необходимости с указанием адреса другой стороны. |
| -pointopoint [addr] | Отключает режим point-to-point. |
| hw class address | Устанавливает аппаратный адрес устройства. После ключевого слова указывается класс (например, ether, ax25) и физический адрес. |
| multicast | Устанавливает флаг поддержки передачи данных на группу (multicast). |
| address | IP-адрес, присвоенный интерфейсу. |
| txqueuelen length | Устанавливает длину очереди передачи — полезно для медленных каналов или подключения с высокими задержками (например, modems, ISDN). |
Примеры
# ifconfig eth0 inet 192.168.10.15 netmask 255.255.255.0
# ifconfig eth0 up
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:18:F3:BE:18:1E
inet addr:192.168.10.15 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::218:f3ff:febe:181e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39456 errors:0 dropped:0 overruns:0 frame:0
TX packets:45730 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25457904 (24.2 Mb) TX bytes:6540945 (6.2 Mb)
Interrupt:20
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:182 errors:0 dropped:0 overruns:0 frame:0
TX packets:182 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12812 (12.5 Kb) TX bytes:12812 (12.5 Kb)
#
Ссылки
- ifconfig(8) — FreeBSD man
- ifconfig(8) — Linux man
- ifconfig(8). Руководство программиста Linux (2003). Дата обращения: 1 декабря 2006. Архивировано 25 ноября 2019 года.
- Linux / Unix ifconfig command (англ.). Computer Hope. Дата обращения: 21 июня 2024.