Команда ifconfig предназначена для задействования одноименной утилиты, осуществляющей управление сетевыми интерфейсами. Утилита ifconfig считается устаревшей, но все еще доступна в большинстве дистрибутивов и может использоваться для конфигурации системы. В качестве замены обычно рекомендуется использовать утилиту ip.
Базовый синтаксис команды выглядит следующим образом:
# ifconfig [параметры] [тэги и значения]
Утилита поддерживает малое количество классических параметров — вместо них для настройки сетевых интерфейсов используются тэги и значения. Так, утилита поддерживает параметр -a, позволяющий выводить информацию обо всех существующих в системе сетевых интерфейсах, в том числе деактивированных, параметр -s, позволяющий утилите выводить информацию в сжатом виде и параметр -v, позволяющий утилите генерировать самый подробный вывод. Для идентификации сетевых интерфейсов используются их имена, причем для того, чтобы узнать их, достаточно вызвать утилиту без каких-либо параметров. Если вас интересуют параметры определенного сетевого интерфейса, вы можете передать его имя утилите. Что касается тэгов, то самые важные из них приведены в таблице ниже:
Тэг | Значение |
interface <имя интерфейса> | Используется для указания имени сетевого интерфейса, который нужно настроить |
down | Используется для деактивации сетевого интерфейса |
[-]arp | Используется для активации или деактивации (при использовании символа -) поддержки протокола ARP на уровне сетевого интерфейса |
[-]allmulti | Используется для активации или деактивации (при использовании символа -) режима приема пакетов многоадресной передачи на уровне сетевого интеррфейса |
metric <N> | Используется для установки метрики сетевого интерфейса |
mtu <N> | Используется для установки MTU сетевого интерфейса |
netmask <адрес> | Используется для установки маски сети сетевого интерфейса |
add <адрес/длина префикса> | Используется для добавления IP-адреса сетевого интерфейса |
del <адрес/длина префикса> | Используется для удаления IP-адреса сетевого интерфейса |
irq <N> | Используется для установки номера прерывания, используемого связанным с сетевым интерфейсом сетевым адаптером |
[-]broadcast <адрес> | Используется для установки адреса широковещательной передачи или отключения широковещательной передачи (при использовании символа -) на уровне сетевого интерфейса |
hw <класс> <адрес> | Используется для установки класса и MAC-адреса устройства. В качестве класса чаще всего используются идентификатор eth — Ethernet |
multicast | Используется для установки флага многоадресной передачи на уровне сетевого интерфейса |
address <адрес> | Используется для установки IP-адреса сетевого интерфейса |
txqueuelen <длина> | Используется для установки длины очереди отправки данных сетевого интерфейса |
Для получения информации обо всех сетевых интерфейсах достаточно вызвать утилиту ifconfig без каких-либо параметров:
$ ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.210 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::66b4:dd0b:f7a0:1671 prefixlen 64 scopeid 0x20<link>
ether 8c:89:a5:57:76:ba txqueuelen 1000 (Ethernet)
RX packets 215529 bytes 289774656 (289.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 124872 bytes 13403644 (13.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 1 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Локальная петля (Loopback))
RX packets 2185 bytes 216046 (216.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2185 bytes 216046 (216.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lxdbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.43.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::bc7b:75ff:fe25:5093 prefixlen 64 scopeid 0x20<link>
inet6 fd42:b0ab:2996:eb04::1 prefixlen 64 scopeid 0x0<global>
ether be:7b:75:25:50:93 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 964 bytes 106641 (106.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlx003676021e61: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.127 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a233:3812:a0bc:3f21 prefixlen 64 scopeid 0x20<link>
ether 00:36:76:02:1e:61 txqueuelen 1000 (Ethernet)
RX packets 800 bytes 729758 (729.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 10479 (10.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Очевидно, что утилита вывела информацию об интерфейсе проводной сети (enp3s0), интерфейсе локальной петли (lo), виртуальном интерфейсе LXD (lxdbr0) и интерфейсе беспроводной сети (wlx003676021e61).
Для получения информации об отдельных интерфейсах следует передавать имена этих интерфейсов утилите ifconfig:
$ ifconfig wlx003676021e61
wlx003676021e61: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.127 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a233:3812:a0bc:3f21 prefixlen 64 scopeid 0x20<link>
ether 00:36:76:02:1e:61 txqueuelen 1000 (Ethernet)
RX packets 4799 bytes 6135801 (6.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 390 bytes 41022 (41.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Очевидно, что в этот раз утилита вывела информацию лишь об интерфейсе беспроводной сети (wlx003676021e61).
Для активации и деактиваци сетевых интерфейсов следует использовать тэги up и down. Для начала деактивируем интерфейс беспроводной сети:
$ sudo ifconfig wlx003676021e61 down
$ ifconfig wlx003676021e61
wlx003676021e61: flags=4098<BROADCAST,MULTICAST> mtu 1500
inet 192.168.1.127 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:36:76:02:1e:61 txqueuelen 1000 (Ethernet)
RX packets 4811 bytes 6137185 (6.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 397 bytes 41671 (41.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Теперь среди флагов интерфейса нет флага UP — интерфейс деактиврован. Для активации интерфейса следует использовать тэг up:
$ sudo ifconfig wlx003676021e61 up
$ ifconfig wlx003676021e61
wlx003676021e61: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.127 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:36:76:02:1e:61 txqueuelen 1000 (Ethernet)
RX packets 4847 bytes 6140959 (6.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 467 bytes 51012 (51.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Среди флагов интерфейса снова появился флаг UP — интерфейс активрован.
Для установки параметров сетевого интерфейса должны использоваться соответствующие тэги с значениями. Так, для установки адреса, маски сети и широковещательного адреса достаточно использовать новый адрес, а также тэги netmask и broadcast с их значениями:
$ sudo ifconfig wlx003676021e61 192.168.1.125 netmask 255.255.255.224 broadcast 192.168.1.254
$ ifconfig wlx003676021e61
wlx003676021e61: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.125 netmask 255.255.255.224 broadcast 192.168.1.254
ether 00:36:76:02:1e:61 txqueuelen 1000 (Ethernet)
RX packets 4869 bytes 6143213 (6.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 498 bytes 54518 (54.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Очевидно, что все указанные параметры сетевого интерфейса были изменены. Разумеется, вы можете изменить другие параметры сетевого интерфейса с помощью тэгов, приведенных в таблице ниже.