Как узнать количество физических Ethernet-портов на сервере Linux

Rack-серверы и промышленные ПК обычно комплектуются несколькими физическими Ethernet-портами или сетевыми картами (NIC). Это повышает производительность, устойчивость и позволяет сегментировать сеть.
Зачем серверам несколько физических Ethernet-портов
Основные причины, по которым у серверов часто несколько физических интерфейсов:
- Сегментация сети. Несколько портов дают возможность подключиться к разным сетям одновременно. Это улучшает безопасность и упрощает изоляцию трафика.
- Виртуализация. На одном хосте могут работать несколько виртуальных сетей для виртуальных машин. Дополнительные физические NIC помогают оптимально распределить трафик.
- Резервирование и отказоустойчивость. При выходе из строя одного кабеля или интерфейса можно поддерживать связь через другой.
Эти преимущества делают несколько физических портов обычной практикой для серверов в ЦОД и на производстве.
Быстрый способ с lspci
Утилита lspci показывает все PCI-устройства в системе. Сетевые карты, как правило, видны через PCI, поэтому фильтрация по Ethernet даст список физических NIC.
lspci | grep -i ethernetВыход покажет каждую PCI-окапотированную сетевую карту. Чтобы получить просто количество строк, можно посчитать их так:
lspci | grep -i ethernet | wc -lПримечание: некоторые NIC могут быть встроены в материнскую плату и тоже отображаться через PCI.
Дополнительные команды и подходы
Если нужен полный обзор и дополнительная информация, используйте одну или несколько из приведённых команд.
- Просмотреть сетевые интерфейсы на уровне ядра:
ls /sys/class/net- Посмотреть все доступные сетевые устройства и их состояние:
ip link show- Дополнительная информация о конкретном интерфейсе:
ethtool -i eth0- Показать устройства через NetworkManager:
nmcli device status- Списать аппаратную информацию о сетях:
sudo lshw -C network- Старые, но иногда полезные инструменты:
ifconfig -aи
dmesg | grep -i ethЭти команды помогут отличить физические порты от виртуальных интерфейсов, таких как vlan, bridge, tun/tap, или интерфейсы, созданные гипервизорами.
Как отличить физический порт от виртуального
- Физические интерфейсы обычно имеют драйверы, указанные в выводе lspci или lshw, и видны в /sys/class/net с подкаталогом device, указывающим на PCI устройство.
- Виртуальные интерфейсы часто имеют имена вида vnet0, virbr0, tun0, br-*, или не имеют связанного PCI-устройства.
- SR-IOV и passthrough создают виртуальные функции, которые выглядят как физические с точки зрения ОС, поэтому для точной инвентаризации смотрите привязку к PCI (lspci) и настройки гипервизора.
Important: чтобы корректно отличать физику от виртуалки, проверьте поля device и драйвера в /sys/class/net/
Когда методы могут не сработать
- Виртуализация: при SR-IOV или прямом passthrough виртуальные функции могут выглядеть как отдельные NICы.
- USB-адаптеры: USB-to-Ethernet не отображается через PCI, но виден в /sys/class/net и ip link
- Спайсированные/спаренные интерфейсы: агрегированные BOND-интерфейсы скрывают физические в обычном сетевом выводе
- Ограниченные права: без sudo некоторые команды могут не показать полный набор аппаратных данных
Мини-методология для безопасной проверки
- Подключитесь к серверу по SSH с учётом прав sudo.
- Выполните lspci | grep -i ethernet для начальной инвентаризации.
- Сопоставьте результаты с ls /sys/class/net и ip link.
- Для каждого интерфейса проверьте /sys/class/net/
/device чтобы подтвердить привязку к PCI. - Если задействован гипервизор, сверяйте с его настройками SR-IOV или passthrough.
Чек-лист по ролям
Системный администратор:
- Запустить lspci и lshw
- Сопоставить PCI адреса с /sys/class/net
- Обновить документацию и схемы подключения
SRE / Инженер по сетям:
- Проверить конфигурацию bonding и VLAN
- Тестировать отказоустойчивость поэтапно
- Настроить мониторинг интерфейсов
Служба поддержки / Helpdesk:
- Собрать выводы ip link show и nmcli device status
- Передать администратору, если нужен физический доступ
Шпаргалка команд
- Посчитать NICы через PCI:
lspci | grep -i ethernet | wc -l- Полный список сетевых интерфейсов:
ls /sys/class/net- Подробно про интерфейс:
ethtool -i - Оборудование сетевого класса:
sudo lshw -C networkКритерии приёмки
- Вы получили список физически установленных NIC и их производителей
- Каждому сетевому интерфейсу сопоставлен PCI-адрес или пометка«USB»/«виртуальный»
- Документация обновлена в CMDB или инвентарной системе
Краткий глоссарий
NIC: сетевая карта, физический контроллер для Ethernet-соединений PCI: шина для подключения внутренних устройств, включая NIC SR-IOV: технология виртуализации ввода-вывода, создаёт виртуальные функции NIC Bonding: объединение нескольких физических интерфейсов в один логический
Summary:
- Используйте lspci и ls /sys/class/net для надёжной инвентаризации
- Проверяйте привязку интерфейсов к PCI, чтобы отличить физику от виртуалки
- Учитывайте SR-IOV, USB-адаптеры и bonding как возможные ловушки
Важно: всегда выполняйте команды с правами, достаточными для чтения аппаратной информации. Если вы сомневаетесь, привлеките инженера, имеющего доступ к стойке для визуальной проверки.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone