Как найти доступные сетевые интерфейсы в Linux
Одна из общих задач, которую мы выполняем после установки системы Linux, - настройка сети. Конечно, вы можете настроить сетевые интерфейсы во время установки. Но можно сделать это после установки или при изменении существующих настроек. Для начала мы должны сначала узнать, сколько интерфейсов доступно в системе, чтобы настроить параметры сети из командной строки. В этом кратком руководстве рассмотрим возможные способы поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.
Мы можем найти доступные сетевые карты несколькими способами.
Способ 1. Использование команды ifconfig
Наиболее часто используемый метод поиска сведений о сетевом интерфейсе - это использование команды 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.
Способ 2. Использование команды ip
Команда 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.
Способ 3. Просмотр каталога /sys/class/net
Ядро Linux сохраняет данные о сетевом интерфейсе в каталоге /sys/class/net. Вы можете проверить список доступных интерфейсов, заглянув в этот каталог.
$ ls /sys/class/net
Вывод команды
enp5s0 lo wlp9s0
Способ 4. Просмотр статистики сетевых интерфейсов
В операционных системах 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
Способ 5. Использование команды netstat
Команда 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. Также обратите внимание, что этот метод будет отображать только активные интерфейсы, а не все доступные.
Способ 6. Использование команды nmcli
Nmcli - это инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети. Он используется для создания, отображения, редактирования, удаления, активации и деактивации сетевых подключений и отображения состояния сети.
Если у вас установлена система Linux с установленным Network Manager, вы можете получить список доступных сетевых интерфейсов с помощью инструмента nmcli, используя следующие команды:
$ nmcli device status
или
$ nmcli connection show
Теперь вы знаете, как найти доступные сетевые интерфейсы в Linux.