Назад | Перейти на главную страницу

Как вывести список всех физически установленных сетевых карт (Debian)?

На моем «выделенном сервере» должно быть установлено два сетевых адаптера, но я могу найти только один.

Мой вопрос: какие еще команды и методы доступны для проверки того, сколько сетевых карт установлено на моем сервере

lspci | grep Ethernet

Доступны ли другие команды / методы?

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

lshw -class network

ip link show перечислит все, что выглядит как сетевой интерфейс.

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

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

Пытался найти 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 указано.

Для Ethernet:

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

/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

ls -d /sys/class/net/*/device | cut -d/ -f5 перечислит только настоящий Сетевые карты, исключая связи, устройства обратной связи и т. Д.

В качестве бонуса ls -l /sys/class/net/*/device/driver/module | cut -d/ -f5,13 | sed 's?/? -> ?' также покажет привязанный к нему драйвер.

Пример аппаратного брандмауэра от крупного производителя:

# ls -l /sys/class/net/*/device/driver/module | cut -d/ -f5,13 | sed 's?/? -> ?'
Mgmt -> igb
Sync -> igb
eth2-01 -> igb
eth2-02 -> igb
eth2-03 -> igb
eth2-04 -> igb
eth2-05 -> igb
eth2-06 -> igb
eth2-07 -> igb
eth2-08 -> igb
eth3-01 -> ixgbe
eth3-02 -> ixgbe
modprobe -c |grep 'eth[0-9]'

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