Как найти доступные сетевые интерфейсы в Linux

Одна из общих задач, которую мы выполняем после установки системы Linux, - настройка сети. Конечно, вы можете настроить сетевые интерфейсы во время установки. Но можно сделать это после установки или при изменении существующих настроек. Для начала мы должны сначала узнать, сколько интерфейсов доступно в системе, чтобы настроить параметры сети из командной строки. В этом кратком руководстве рассмотрим возможные способы поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.

Мы можем найти доступные сетевые карты несколькими способами.

Наиболее часто используемый метод поиска сведений о сетевом интерфейсе - это использование команды ifconfig. Я полагаю, что некоторые пользователи Linux все еще могут использовать эту команду.

$ ifconfig -a

Пример вывода:

enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 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 (Local Loopback)
RX packets 171420 bytes 303980988 (289.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 171420 bytes 303980988 (289.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255
inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global>
inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link>
ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet)
RX packets 564574 bytes 628671925 (599.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 299706 bytes 60535732 (57.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Как вы видите в приведенном выше выводе, здесь есть два сетевых интерфейса, а именно enp5s0 (проводной адаптер Ethernet) и wlp9s0 (адаптер беспроводной сети) на компьютере с Linux. Здесь lo - это петлевой интерфейс, который используется для локального доступа ко всем сетевым сервисам. Он имеет IP-адрес 127.0.0.1.

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

$ ip link show

Пример вывода:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff
3: wlp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff

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

$ ip addr
$ ip -s link

Вы заметили, что эти команды также показывают состояние подключения сетевых интерфейсов? Если вы внимательно посмотрите на вышеприведенный вывод, вы заметите, что карта Ethernet не подключена с помощью сетевого кабеля (см. слово DOWN в вышеприведенном выводе). И беспроводная сетевая карта подключена к сети (см. слово UP).

Этих двух команд (ifconfig и ip) достаточно, чтобы найти доступные сетевые карты в ваших системах Linux.

Тем не менее, есть еще доступные методы для просмотра сетевых интерфейсов в Linux.

Ядро Linux сохраняет данные о сетевом интерфейсе в каталоге /sys/class/net. Вы можете проверить список доступных интерфейсов, заглянув в этот каталог.

$ ls /sys/class/net

Вывод команды

enp5s0 lo wlp9s0

В операционных системах Linux файл /proc/net/dev содержит статистику о сетевых интерфейсах.

Чтобы просмотреть доступные сетевые карты, просто просмотрите их содержимое с помощью команды:

$ cat /proc/net/dev

Вывод команды:

Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
wlp9s0: 629189631 566078 0 0 0 0 0 0 60822472 300922 0 0 0 0 0 0
enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
lo: 303980988 171420 0 0 0 0 0 0 303980988 171420 0 0 0 0 0 0

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

$ netstat -i

Пример вывода

Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
lo 65536 171420 0 0 0 171420 0 0 0 LRU
wlp9s0 1500 565625 0 0 0 300543 0 0 0 BMRU

Только помните, что netstat устарел. Замена для netstat -i - ip -s link. Также обратите внимание, что этот метод будет отображать только активные интерфейсы, а не все доступные.

Nmcli - это инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети. Он используется для создания, отображения, редактирования, удаления, активации и деактивации сетевых подключений и отображения состояния сети.

Если у вас установлена система Linux с установленным Network Manager, вы можете получить список доступных сетевых интерфейсов с помощью инструмента nmcli, используя следующие команды:

$ nmcli device status

или

$ nmcli connection show

Теперь вы знаете, как найти доступные сетевые интерфейсы в Linux.