Как найти доступные сетевые интерфейсы в Linux
Список Ethernet-карт в Linux и Unix
Мы можем настроить сетевые интерфейсы в Linux во время установки. Но некоторые из вас могут предпочесть сделать это после установки или изменить существующие настройки. Как вы уже знаете, вы должны сначала узнать, сколько интерфейсов доступно в системе, чтобы настроить параметры сети из командной строки. В этом подробном руководстве рассматриваются все возможные способы составления списка и нахождения доступных сетевых интерфейсов в операционных системах Linux и Unix.
Найдите доступные сетевые интерфейсы в Linux
Мы можем найти доступные сетевые карты несколькими способами. В этом руководстве мы обсудим 10 способов составить список сетевых карт в Linux.
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
.
Мы также можем использовать одну и ту же команду 'ifconfig'
во многих вариантах UNIX, например FreeBSD, для вывода списка доступных сетевых карт.
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».
Вы также можете использовать следующие команды.
ip addr
ip -s link
Вы заметили, что эта команда также показывает состояние подключения сетевых интерфейсов? Если вы внимательно посмотрите на приведенный выше вывод, вы заметите, что моя карта Ethernet не подключена сетевым кабелем (см. слово "ВНИЗ" в приведенном выше выводе). Беспроводная сетевая карта подключена (см. слово "UP"). Для получения более подробной информации ознакомьтесь с нашим предыдущим руководством по нахождению состояния подключения сетевых интерфейсов в Linux.
Этих двух команд (ifconfig
и ip
) достаточно, чтобы найти доступные сетевые карты в ваших системах Linux.
Однако существует несколько других способов получения списка сетевых интерфейсов в Linux.
3. Перечислите сетевые интерфейсы, используя каталог /sys/class/net/.
Ядро Linux сохраняет сведения о сетевом интерфейсе в каталоге /sys/class/net
. Вы можете проверить список доступных интерфейсов, заглянув в этот каталог.
ls /sys/class/net
Пример вывода:
enp5s0 lo virbr0 wlp9s0
4. Перечислите сетевые интерфейсы, используя файл /proc/net/dev.
В операционных системах 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
lo: 2836 30 0 0 0 0 0 0 2836 30 0 0 0 0 0 0
enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
wlp9s0: 557664882 402062 0 0 0 0 0 0 20087136 165358 0 0 0 0 0 0
virbr0: 0 0 0 0 0 0 0 0 0 0 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
enp5s0 1500 0 0 0 0 0 0 0 0 BMU
lo 65536 30 0 0 0 30 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
wlp9s0 1500 402063 0 0 0 165361 0 0 0 BMRU
Помните, что netstat устарел. Заменой для "netstat -i"
является "ip -s link"
. Также обратите внимание, что этот метод будет отображать только активные интерфейсы, а не все доступные интерфейсы.
6. Перечислите сетевые интерфейсы с помощью команды nmcli.
nmcli — это инструмент командной строки для управления NetworkManager и составления отчетов о состоянии сети. Он используется для создания, отображения, редактирования, удаления, активации и деактивации сетевых подключений, а также отображения состояния сети.
Если у вас установлена система Linux с установленным Network Manager, вы можете просмотреть доступные сетевые интерфейсы с помощью инструмента nmcli, используя следующие команды:
nmcli device status
Пример вывода:
DEVICE TYPE STATE CONNECTION
wlp9s0 wifi connected JioFi4_12E9FE
virbr0 bridge connected (externally) virbr0
p2p-dev-wlp9s0 wifi-p2p disconnected --
enp5s0 ethernet unavailable --
lo loopback unmanaged --
Вы также можете использовать эту команду для отображения сетевых интерфейсов в вашей системе Linux:
nmcli connection show
Большинство вышеупомянутых утилит предустановлены в большинстве систем Linux и Unix. Есть также еще несколько внешних утилит для отображения списка сетевых карт.
7. Показать список сетевых интерфейсов с помощью hwinfo.
Hwinfo - это утилита командной строки для просмотра информации об оборудовании в системе Linux. Он исследует оборудование, присутствующее в системе Linux, и отображает подробную информацию о каждом аппаратном устройстве.
Hwinfo доступен в официальных репозиториях многих дистрибутивов Linux. Чтобы установить hwinfo в системах на базе RPM, запустите:
sudo dnf install hwinfo
В системах на базе Deb вы можете установить hwinfo с помощью следующей команды:
sudo apt install hwinfo
После установки выполните следующую команду, чтобы просмотреть имена сетевых интерфейсов с помощью утилиты hwinfo:
sudo hwinfo --short --network
Пример вывода:
network interface:
enp5s0 Ethernet network interface
virbr0 Ethernet network interface
wlp9s0 Ethernet network interface
lo Loopback network interface
8. Показать сетевые интерфейсы с помощью lshw
Lshw (Список оборудования) - это утилита CLI, предоставляющая подробную информацию о конфигурации оборудования системы Linux.
Чтобы отобразить список сетевых карт в Linux с помощью утилиты lshw, запустите:
sudo lshw -class network -short
Пример вывода:
H/W path Device Class Description
===============================================================
/0/100/1c.1/0 enp5s0 network RTL810xE PCI Express Fast Ethernet controller
/0/100/1c.3/0 wlp9s0 network AR9285 Wireless Network Adapter (PCI-Express)
9. Просмотр сетевых интерфейсов с помощью inxi
Inxi — это еще один инструмент командной строки для получения информации о системе, такой как hwinfo и lshw. Он показывает системное оборудование, процессор, драйверы, Xorg, рабочий стол, ядро, версии GCC, процессы, использование оперативной памяти и множество другой полезной информации.
Чтобы отобразить информацию о сетевых картах, включая производителя, драйвер карты и количество доступных сетевых интерфейсов в системе Linux, запустите inix с опцией -N
:
$ inxi -N
Network: Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169
Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k
Связанное чтение:
- Как проверить или найти информацию о процессоре в Linux
10. Отображение сетевых интерфейсов с помощью lspci
Команда lspci
выводит список всех устройств PCI в системе Linux.
Чтобы просмотреть список доступных сетевых интерфейсов в системе Linux, используйте lspci с командой egrep, как показано ниже:
lspci | egrep -i 'network|ethernet|wireless|wi-fi'
Пример вывода:
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 05)
09:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Укажите только имена доступных сетевых интерфейсов.
До сих пор мы видели различные методы поиска доступных сетевых интерфейсов в Linux. Во всех вышеупомянутых методах мы отображали доступные сетевые интерфейсы вместе с некоторыми дополнительными сведениями, такими как данные RX/TX, Mac-адрес, состояние подключения, режим, тип сети и некоторые другие. Если вы хотите удалить ненужную информацию и указать только имена сетевых интерфейсов, вы можете использовать одну из следующих команд.
ifconfig -a | sed 's/[ \t].*//;/^$/d'
Пример вывода:
enp5s0:
lo:
virbr0:
wlp9s0:
Чтобы исключить устройство обратной связи (lo) из вывода, вместо этого запустите следующую команду:
ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'
Как говорилось ранее, команда ifconfig
устарела. Если команда ifconfig
недоступна, используйте команду ip
, чтобы отобразить только имена сетевых интерфейсов с флагом -o
, как показано ниже:
$ ip -o link show | awk -F': ' '{print $2}'
lo
enp5s0
wlp9s0
virbr0
Вы также можете использовать следующую команду:
ip addr show | awk '/^[1-9]/ {print $2}'
Заключение
В этом руководстве мы обсудили десять различных методов поиска и получения списка доступных сетевых интерфейсов в Linux и Unix. Мы также рассмотрели несколько способов отображения только названий сетевых интерфейсов в Linux.
Ознакомьтесь со следующими руководствами, чтобы узнать, как настроить IP-адрес в Linux.
- Как настроить статический IP-адрес в Linux и Unix
- Как настроить IP-адрес в Ubuntu 18.04 LTS
- Как настроить статический и динамический IP-адрес в Arch Linux
- Как назначить несколько IP-адресов одной сетевой карте в Linux