Как найти сетевую карту в linux

Мы можем настроить сетевые интерфейсы в Linux во время установки.

Но некоторые из вас могут предпочесть сделать это после установки или изменить существующие настройки.

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

В этом подробном руководстве рассматриваются все возможные способы перечисления и поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.

Содержание

  1. 1. Отображение сетевых интерфейсов с помощью команды ifconfig
  2. 2. Вывод списка сетевых интерфейсов с помощью команды ip
  3. 3. Выводим список сетевых интерфейсов с помощью каталога /sys/class/net/
  4. 4. Смотрим список сетевых интерфейсов с помощью файла /proc/net/dev
  5. 5. Строим список сетевых интерфейсов с помощью команды netstat
  6. 6. Находим список сетевых интерфейсов с помощью команды nmcli
  7. 7. Как показать список сетевых интерфейсов с помощью hwinfo
  8. 8.  Как показать сетевые интерфейсы с помощью lshw
  9. 9. Просмотр сетевых интерфейсов с помощью inxi
  10. 10. Отображение сетевых интерфейсов с помощью команды lspci
  11. Как вывести только имена доступных сетевых интерфейсов
  12. Заключение

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 – это интерфейс loopback, который используется для локального доступа ко всем сетевым сервисам.

Он имеет IP-адрес 127.0.0.1.

Мы также можем использовать ту же команду ‘ifconfig’ во многих вариантах UNIX, например, во FreeBSD, для получения списка доступных сетевых карт.

2. Вывод списка сетевых интерфейсов с помощью команды ip

Команда ‘ifconfig’ устарела в последних версиях Linux.

Устаревшие сетевые команды 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”). Для получения более подробной информации ознакомьтесь с нашим предыдущим руководством по поиску подключенного состояния сетевых интерфейсов в 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 (Hardware Lister) – это утилита 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 / Unix
  • 🐧 Как найти все файлы, принадлежащие определенному пользователю в Unix / Linux
  • 🐧 Как найти все файлы с правами 777 на Linux
  • 📂 Как найти текущий рабочий каталог процесса, используя Pwdx на 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:

Чтобы исключить устройство loopback (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.

Одна из общих задач, которую мы выполняем после установки системы Linux, – настройка сети.

Конечно, вы можете настроить сетевые интерфейсы во время установки.

Но некоторые из вас могут предпочесть сделать это после установки или изменить существующие настройки.

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

В этом кратком руководстве рассматриваются все возможные способы поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.

Найти доступные сетевые интерфейсы в 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 addr
$ ip -s link

Вы заметили, что эти команды также показывают состояние подключения сетевых интерфейсов?

Если вы внимательно посмотрите на вышеприведенный вывод, вы заметите, что моя карта Ethernet не подключена с помощью сетевого кабеля (см. Слово «DOWN» в вышеприведенном выводе).

И беспроводная сетевая карта подключена (см. Слово «UP»).

Для получения более подробной информации обратитесь к нашему предыдущему руководству, чтобы найти состояние подключения сетевых интерфейсов в Linux:

networkctl — запрос состояния сетевых интерфейсов в Linux

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

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

Способ 3:

Ядро 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 – это nmcli – инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети.

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

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

$ nmcli device status

или

$ nmcli device status

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

Далее, проверьте следующие руководства, чтобы узнать, как настроить IP-адрес в Linux.

  • Как настроить IP-адрес в Ubuntu 18.04 LTS
  • Как перезагрузить сеть в Ubuntu

Иногда нужно посмотреть сетевые карты в Linux, подключенные к компьютеру, узнать имя продукта или технические характеристики карты, а также скорость передачи данных. Например, когда вы хотите проверить совместимость сетевого драйвера или модуля ядра с Ethernet адаптером необходимо знать его аппаратные спецификации, такие как: номер модели и производитель, (например: Broadcom NetXtreme, Intel I350), скорость (например: (1 Гбит/сек, 10 Гбит/сек), режим соединения (full/half duplex) и т д.

Также эта информация вам понадобится, если вы хотите подобрать драйвер для своего wifi адаптера. В этой инструкции я расскажу как узнать сетевую карту Linux и посмотреть все доступные ее характеристики.

Информация о сетевой карте с помощью Ethtool

Если вас интересует информация о проводной сетевой карте Ehternet, то вы можете воспользоваться утилитой Ethtool. Это инструмент командной строки для проверки и изменения настроек PCI Ethernet карт. Для установки Ethtool в Ubuntu или Debian используйте команду:

sudo apt install ethtool

В других дистрибутивах установка производится аналогичным образом, только нужно использовать подходящий пакетный менеджер.

Для отображения настроек сетевой карты в ethtool запустите утилиту передав в параметрах имя сетевого адаптера. Права суперпользователя здесь нужны для того, чтобы утилита могла получить информацию о настройках локальной сети и статусе соединения.

sudo ethtool eth0

net

Здесь вы можете посмотреть поддерживаемые режимы работы Supported link modes, скорость Speed и тип коннектора Port, а также состояние подключения. Для просмотра информации о сетевом драйвере и прошивке используйте опцию i:

sudo ethtool -i eth0

net1

Здесь вы можете видеть какие режимы поддерживает прошивка, а также ее версию. Если вас интересует MAC адрес выполните:

sudo ethtool -P eth0

net2

Информация о сетевой карте в lshw

Во втором способе мы воспользуемся утилитой для отображения подробной информации об аппаратуре Linux – lshw. С помощью нее вы можете посмотреть информацию не только о карте Ethernet, но и о Wifi адаптере, а также посмотреть список сетевых карт.

Для установки lshw на Ubuntu или Debian наберите:

sudo apt install lshw

Чтобы посмотреть узнать сетевую карту linux и просмотреть подробные сведения о ней, запустите утилиту со следующими параметрами:

sudo lshw -class network

net4

В выводе команды вы увидите все подключенные к системе сетевые интерфейсы, кроме того, тут показывается более подробная информация, чем в выводе предыдущей утилиты. В самом начале вы видите производителя – vendor и имя продукта – product, скорость передачи данных size, а также в разделе configuration можно найти поле driver, где указан используемый драйвер.

Список сетевых карт в lspci

Если вам нужно узнать только продукт и имя производителя вашей сетевой карты можно использовать lspci. Обычно lscpi уже предустановлена в системе, но если нет ее можно установить командой:

sudo apt install pciutils

Теперь для просмотра доступных сетевых карт используйте:

lspci | grep -i 'net'

net5

Тут вы можете видеть, что к системе подключены две сетевые карты linux, для проводного интернета и беспроводная, обе от Broadcom.

Информация о сетевой карте с помощью ip

Утилита ip позволяет посмотреть более подробную информацию о сетевом протоколе для вашей карты. Для просмотра информации выполните:

ip link show

net6

На снимке экрана вы видите две физические сетевые карты linux – wlan0 и eth0, а также два виртуальных устройства. Для каждой из карт можно узнать состояние и MAC адрес.

Выводы

В этой статье мы рассмотрели несколько способов узнать сетевую карту Linux. Вы можете посмотреть не только производителя и название устройства, но и его характеристики, такие как скорость сетевой карты linux, используемый драйвер и MAC адрес. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

This is in regard to linux, but if anyone knows of a general *nix method that would be good.

I booted a system yesterday with an ethernet cable plugged in. “NetworkManager” is not installed, so once it started I went to look for the name of the ethernet interface with ifconfig to start a DHCP client manually, but it did not show anything other than lo.

The NIC was listed via lspci, and the appropriate kernel driver was loaded. The system normally uses wifi, and I could remember the interface name for that was wlan0. When I tried ifconfig wlan0 up, wlan0 appeared. But the only ethernet interface names I could remember were eth[N] and em[N] — neither of which worked.

This document refers to “predictable interface names” but does not do a good job of explaining what they might be in simple terms. It does refer to a piece of source code which implies the name in this case might be deduced from the the PCI bus and slot numbers, which seems like an unnecessarily complicated hassle.

Other searching around led me to believe that this might be determined by systemd in conjunction with udev, but there are almost 100 files in /usr/lib/udev/rules.d and spending an hour trying to determine where (and if) there’s a systemd config file for this also seems ridiculous.

It would also be nice to know for certain that they are available, not just how they might be named if they are, so I can rule out hardware problems, etc. Isn’t there a simple way to find the names of available network interfaces on linux?

Как подключить сетевую карту в Linux Ubuntu?Первый шаг – вы вставляете сетевую карту в соответствующий слот и включаете компьютер. Чтобы проверить, как сетевая карта подключена в Linux Ubuntu, какие параметры ей назначены, необходимо:

  • Через менеджер пакетов установить пакеты ethtool, lshw6 net-tools и pciutil:
sudo apt install ethtool lshw pciutil net-tools
  • Для просмотра доступных сетевых плат используйте команду:
lspci | grep -i 'net'

Эта команда определит, какие именно интерфейсы подсоединены к шине PCI. Если там есть Ваши устройства, значит всё в порядке, их драйвера присутствуют в ядре Linux.

  • После этого можно просмотреть детальную информацию о каждой плате (интерфейсе). Для этого нужно подать команду:
sudo lshw -class network

Из предыдущего вывода можно узнать слот PCI латы, который в новом выводе будет обозначаться как bus info:

Найдя по номеру гнезда плату, можно будет определить:

  • логический номер интерфейса: (logocal name:). Не факт, что он будет стандартным eth0, eth1 и т.д.;
  • мак адрес сетевой карты (физический) (serial:);
  • ip-адрес карты: (configuration:ip=x.x.x.x …)

Примечание: если карта не настроена, iр=адрес может и не отображаться. А вот имя интерфейса и мак адрес карты должны отображаться всегда!

Этих данных, плюс данных, полученных при планировании сети, вполне достаточно, чтобы дальше настраивать сетевые интерфейсы в ручном режиме, правкой файлов конфигураций или через программу webmin.

Какие существуют файлы конфигурации для настройки сетевых интерфейсов Ubuntu?

Для правильного функционирования сети необходимо внести изменения в следующие файлы конфигурации системы:

  • /etc/network/interfaces
  • /etc/resolv.conf
  • /etc/hosts
  • /etc/networks

Содержимое последних трёх файлов будет обсуждаться в разделах, посвящённых IP протоколам.

Примеры настройки файла /etc/network/interfaces

Ниже приводятся фрагменты настройки Ethernet карт с пояснениями.

Вначале нужно настроить закольцованный интерфейс, если по каким-то причинам он отсутствует:

This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback

Минимальные настройки для интерфейса eth0 по dhcp:

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
broadcast 192.168.1.255
dns-nameservers 192.168.1.254 8.8.8.8

Здесь:

  • address – ip адрес компьютера
  • netmask – его сетевая маска
  • gateway – основной шлюз сети
  • broadcast – широковещательный адрес. Обычно заканчивается на .255, что означает все адреса компьютеров в сети
  • dns-nameservers – адреса первичного и вторичного DNS серверов

Для Wi-fi карты типовые настройки будут следующими:

# The primary WLAN interface
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid <имя_точки_доступа>
wpa-ap-scan 1
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk <hex_ключ>
auto wlan0

 Значения параметров следующие:

  • iface wlan0 inet dhcp – конфигурация для DHCP
  • iface wlan0 – имя нашего интерфейса (wlan0, eth1, rausb0, ra0, и т.д.)
  • wpa-driver – это wpa-driver для нашей карты (‘wext’ – общий драйвер для Linux, работающий с «ndiswrapper»). Рекомендуется оставить как есть.

Другие варианты:

  • hostap = Host AP driver (Intersil Prism2/2.5/3) atmel = ATMEL AT76C5XXx (USB, PCMCIA) wext = Linux wireless extensions (generic) madwifi = Atheros
  • wired = wpa_supplicant wired Ethernet driver
  • wpa-ssid – имя нашей точки доступа (ESSID). Без кавычек.
  • wpa-ap-scan – параметр вещания точкой доступа её имени. «1» = ESSID вещается всем. «2» = ESSID скрыт.
  • wpa-proto – протокол «RSN» = WPA(2) «WPA» = WPA(1)
  • wpa-pairwise и wpagroup – «CCMP» = AES-шифрователь (как часть стандарта WPA(2)) «TKIP» = TKIP-шифрователь (как часть стандарта WPA(1))
  • wpa-key-mgmt – «WPA-PSK» = Аутентификация через ключевую фразу (см. ‘Создание ключей’) «WPA-EAP» = Аутентификация при помощи сервера аутентификаций.
  • auto wlan0 – автоматическое включение wlan0 при загрузке/перезагрузке сети.

Как генерировать шестнадцатеричные ключи для Wifi?

Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII) в hex-ключ:

$ wpa_passphrase <имя_точки_доступа> <ascii_ключ>;

Результат будет примерно таким:

network=
ssid="test"
#psk="12345678"
psk=fe727aa8b64ac9b3f54c72432da14faed933ea511ecab1 5bbc6c52e7522f709a

hex-ключ это все символы после “psk=“.

Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.

Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так – перезагружаем машину.

Вас заинтересует / Intresting for you:

Добавить комментарий