Як перелічити всі фізично встановлені мережеві карти (Debian)?


14

У мого "Виділеного сервера" повинні бути встановлені два NIC, але я можу знайти лише один.

Моє запитання: Які ще команди та методи доступні для перевірки, скільки мережевих карт встановлено на моєму сервері

lspci | grep Ethernet

Чи доступні інші команди / методи?


Чи маєте фізичний доступ до хоста? Чи можете ви підтвердити, що будь-які картки розширення належним чином? Всі NIC від одного виробника?
Ток

Привіт Току. Дякуємо за вашу відповідь. Ніхто з NIC не від одного виробника (один повинен бути від Intel, а другий від realtek). => Ваше запитання звучить цікаво. Який може бути ефект / результат, якщо картки у різних виробників? І я не маю фізичного доступу до сервера і не знаю, чи правильно вони встановлені. Спасибі. джинси.
День

Відповіді:


14

Ви можете використовувати lshw для перегляду всіх пристроїв на машині. Щоб переглянути лише мережеві пристрої, введіть:

lshw -class network

4
lshw не є частиною налаштування Debian за замовчуванням.
Жан-Марк Ліотьє

1
Я вважаю це трохи занадто, я скоріше просто: ip link show
Matías

Це також відображає мостові інтерфейси, які не є фізичними.
Xorax

12

ip link show перерахує все, що схоже на мережевий інтерфейс.


11

Для Ethernet:

ls -d /sys/class/net/eth* | wc -l

1
Це взагалі не працює, оскільки назви пристроїв Ethernet не повинні починатися з eth. Багато (всі?) Основні дистрибутиви Linux зараз використовують "передбачувані імена інтерфейсу Ethernet" з systemd, в результаті чого імена дротяного інтерфейсу, такі як en0 або enp0s25, тому шукаючи eth * пропустять їх.
rajb245

2
Дайте цьому спробу: $ ls -l /sys/class/net/ | grep -v virtual. Він фільтрує всі віртуальні мережеві інтерфейси. Робота над ubuntu, що працює у віртуальній коробці.
kwarnke

10
find /sys/class/net -type l -not -lname '*virtual*' -printf '%f\n'

Показує просто інтерфейси, які стосуються фізичного NIC.

Спробував знайти typeваріант, ip link showякий відображав би не логічно, але на жаль:

ip link help 2>&1 | grep -A10 'TYPE :='
TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |
          bridge | bond | ipoib | ip6tnl | ipip | sit | vxlan |
          gre | gretap | ip6gre | ip6gretap | vti | nlmon |
          bond_slave | ipvlan | geneve | bridge_slave | vrf }

Здається, це одне, чого ip link showне можна зробити. Принаймні, не вдаючись до скрипту, який спочатку перераховує кожне з вищезазначених, а потім grep -vпроти остаточного запуску без typeвказаного.


Це, безумовно, здається, що щось ip linkмає бути в змозі впоратися. Якщо ви використовуєте багато віртуальних інтерфейсів (скажімо, для мостів чи vlan) та особливо якщо ці віртуальні інтерфейси були перейменовані.
Centimane

7

/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:    3562      60    0    0    0     0          0         0     3562      60    0    0    0     0       0          0
 wlan0: 2491781197 2034240    0    0    0     0          0         0 261797069 1502752    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

Як бачимо, багато колонок та деталей читати не дуже легко, catтому я б запропонував використовувати ifconfigкоманду, яка добре читає цей файл та формати.

Для переліку всіх використаних інтерфейсів

/sbin/ifconfig -a

що покаже вам неконфігуровані / вниз мережеві інтерфейси , а також налаштовані та активні, як прочитано з/proc/net/dev


1
modprobe -c |grep 'eth[0-9]'

показує справжній драйвер пристрою, який використовується для кожного пристрою Ethernet


... але пристрої Ethernet можуть бути названі по-різному
Joril
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.