Сетевые интерфейсы Linux: виды, имена и способы определения | AdminWiki

Сетевые интерфейсы Linux: виды, имена и способы определения

09 сентября 2026 10 мин. чтения

Сетевой интерфейс в Linux представляет собой объект ядра, через который система принимает и отправляет сетевой трафик. Его имя нужно для настройки IP-адресов, маршрутов, firewall, NAT, VPN, VLAN, bridge и контейнерных сетей.

Быстрее всего получить список интерфейсов и их состояние помогают команды ip -br link и ip -br addr. Чтобы узнать интерфейс, через который система отправит пакет к конкретному адресу, используйте ip route get 1.1.1.1. В выводе будет поле dev, например dev enp3s0.

ip -br link
ip -br addr
ip route get 1.1.1.1

Имя enp3s0 может обозначать физический сетевой адаптер, а br0, vlan20 или veth1234 будут виртуальными интерфейсами. Статус UP показывает административное включение, а флаг LOWER_UP обычно подтверждает наличие физического линка. На сервере с несколькими картами, VLAN или VPN эти различия определяют, какую команду и какой интерфейс нужно использовать.

Если требуется полный набор команд для проверки IP-адресов, линка, маршрутов, DNS и портов, пригодится шпаргалка по диагностике сетевых интерфейсов Linux. Облачный VDS с несколькими сетевыми подключениями можно развернуть в Timeweb Cloud, а команды из этой статьи применять для проверки сетевой конфигурации.

1. Что такое сетевой интерфейс в Linux

Сетевой интерфейс связывает сетевой стек Linux с конкретным каналом передачи данных. Через него проходят Ethernet-кадры, IP-пакеты, ARP-запросы и другой трафик. Интерфейс может быть связан с физическим устройством, виртуальным каналом или логической сетевой функцией.

У интерфейса есть несколько независимых характеристик:

  • имя, например enp3s0 или lo;
  • тип устройства, например Ethernet, bridge, VLAN или loopback;
  • MAC-адрес, если он предусмотрен типом интерфейса;
  • IPv4- и IPv6-адреса;
  • административный статус, обычно UP или DOWN;
  • состояние физического канала, например LOWER_UP или NO-CARRIER;
  • связанные маршруты и правила фильтрации.

Имя интерфейса не совпадает с именем сетевой карты. Один физический адаптер может иметь несколько логических интерфейсов, например родительский enp3s0 и VLAN enp3s0.20. Bridge может объединять физический порт и виртуальные порты, а VPN создаёт отдельный туннельный интерфейс.

2. Какие бывают сетевые интерфейсы

Для практической работы удобно разделять интерфейсы по способу создания и назначению.

ТипПримеры имёнНазначение
Физический Etherneteth0, enp3s0, ens18Подключение к сетевой карте или виртуальному сетевому адаптеру гипервизора
LoopbackloСвязь процессов с самим хостом через адреса 127.0.0.1 и ::1
Bridgebr0, docker0, cni0Объединение портов на канальном уровне
VLANenp3s0.20, vlan20Работа с тегированным трафиком 802.1Q
Bondbond0Агрегация или резервирование физических подключений
Vethveth0, длинные имена контейнеровВиртуальная пара Ethernet для связи пространств имён
Туннельныйwg0, tun0Передача трафика через VPN или другой туннель

Один хост может одновременно содержать десятки интерфейсов. Например, сервер Kubernetes часто имеет физический порт, loopback, bridge, veth-порты контейнеров, интерфейс CNI и туннель overlay-сети.

3. Как посмотреть сетевые интерфейсы в Linux

Команда ip link show выводит список интерфейсов на уровне канала. Она показывает порядковый номер, имя, флаги, MTU, состояние и MAC-адрес.

ip link show
ip link show dev enp3s0
ip -br link

Сокращённый формат удобен для первичной проверки. Пример вывода:

lo               UNKNOWN        00:00:00:00:00:00
ens18            UP             52:54:00:12:34:56
br0              UP             02:42:ac:11:00:01

IP-адреса и префиксы показывает команда ip addr show:

ip addr show
ip addr show dev ens18
ip -br addr

В выводе ищите строки inet для IPv4 и inet6 для IPv6. Строка inet 192.0.2.15/24 означает IPv4-адрес 192.0.2.15 с маской /24. Один интерфейс может иметь несколько адресов.

Имена можно получить отдельно через виртуальную файловую систему sysfs:

ls -1 /sys/class/net

Файл /proc/net/dev содержит счётчики принятых и переданных байтов, пакетов и ошибок:

cat /proc/net/dev

Практические примеры просмотра списка, IP- и MAC-адресов собраны в материале как посмотреть сетевые интерфейсы в Linux. Команды подходят для первичной проверки на сервере и рабочей станции.

4. Как определить тип интерфейса

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

Для расширенной информации используйте:

ip -d link show dev enp3s0
ip -d link show dev br0
ip -d link show dev enp3s0.20

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

Физический или подключённый к шине интерфейс часто имеет каталог device в sysfs:

test -e /sys/class/net/enp3s0/device && echo bus-backed || echo virtual
readlink -f /sys/class/net/enp3s0/device

Путь с компонентами pci обычно указывает на PCI-сетевую карту. Компоненты usb говорят о подключении через USB. Отсутствие каталога device часто встречается у bridge, VLAN, veth и loopback, но этот признак служит быстрым ориентиром, а не полной классификацией.

Драйвер и параметры физического адаптера показывает ethtool:

ethtool -i enp3s0
ethtool enp3s0

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

5. Что означают имена eth0, enp3s0, ens18 и lo

eth0 - старый короткий формат имени Ethernet-интерфейса. Он зависит от порядка обнаружения устройств, поэтому после добавления карты или изменения конфигурации имя может измениться. На новых системах чаще встречаются предсказуемые имена.

enp3s0 обычно расшифровывается как Ethernet, PCI-шина 3, слот 0. Такая схема связывает имя с расположением устройства в аппаратной топологии.

ens18 обычно встречается у виртуальных машин. Имя может отражать виртуальный слот, который гипервизор показывает гостевой операционной системе. Конкретная схема зависит от дистрибутива, udev, systemd и настроек гипервизора.

eno1 часто используют для встроенного Ethernet-порта. Для Wi-Fi применяются имена, начинающиеся с wl, например wlp2s0.

lo - loopback-интерфейс. Через него программы обращаются к локальной системе. Он обслуживает 127.0.0.0/8 и IPv6-адрес ::1. Отключать lo на рабочем сервере нельзя: это может нарушить работу баз данных, агентов мониторинга, прокси и локальных API.

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

6. Loopback, bridge, VLAN, bond и другие виртуальные устройства

Loopback

lo не связан с кабелем или сетевой картой. Пакет, отправленный на 127.0.0.1, остаётся внутри хоста. Сервисы, которые слушают адрес 127.0.0.1, обычно доступны только локальным процессам.

Bridge

Linux bridge работает как программный коммутатор. Интерфейс br0 может объединить физический порт, виртуальный адаптер виртуальной машины и veth-порты контейнеров.

ip link show type bridge
bridge link show
bridge fdb show br br0

У bridge собственный интерфейс может иметь IP-адрес. Физические порты, подключённые к мосту, часто не получают IP-адрес напрямую. На сервере с виртуальными машинами это частая причина ошибки, когда администратор проверяет адрес на enp3s0, хотя адрес назначен br0.

VLAN

VLAN-интерфейс добавляет тег 802.1Q к трафику через родительский интерфейс. Для VLAN с идентификатором 20 типичный пример имени - enp3s0.20.

ip -d link show type vlan
ip addr show dev enp3s0.20
ip route show

Родительский интерфейс должен подключаться к порту коммутатора с подходящей trunk-конфигурацией. Полная последовательность настройки trunk, VLAN, forwarding и nftables приведена в статье про маршрутизацию между VLAN на Linux-сервере.

Bond

bond0 объединяет несколько физических интерфейсов. Режим зависит от задачи: active-backup даёт резервирование, LACP требует согласованной настройки коммутатора. Состояние bond можно проверить так:

cat /proc/net/bonding/bond0
ip -d link show dev bond0

Адрес шлюза обычно назначают на bond0, а не на его ведомые интерфейсы. Ошибка в выборе устройства приводит к непредсказуемой маршрутизации.

Veth и туннели

Veth создаётся парами. Пакет, вошедший в один конец, появляется в другом. Один конец может находиться в сетевом пространстве имён контейнера, второй подключается к bridge на хосте.

ip -d link show type veth
ip link show type tun
ip link show type wireguard

VPN-интерфейсы часто получают имена wg0, tun0 или tap0. Они не отражают наличие физического адаптера. Маршруты через такой интерфейс задают путь трафика, а firewall определяет, разрешена ли пересылка.

7. Как определить USB-сетевой адаптер

USB-Ethernet-адаптер обычно получает имя вида enx001122334455, где последние символы связаны с MAC-адресом. В отдельных системах устройство может получить имя eth1, enp0s20u1 или другой вариант. На результат влияют правила именования и версия системы.

Сначала найдите новый интерфейс:

ip -br link
ls -1 /sys/class/net

Затем проверьте драйвер и физический линк:

ethtool -i enx001122334455
ethtool enx001122334455
readlink -f /sys/class/net/enx001122334455/device

Если путь содержит usb, интерфейс связан с USB-шиной. Сведения об обнаруженном USB-устройстве можно получить командой lsusb, если пакет с этой утилитой установлен.

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

8. Как посчитать количество сетевых интерфейсов

Сначала определите, что именно нужно посчитать. В Linux в список входят lo, bridge, VLAN, bond, veth, VPN и другие виртуальные устройства. Поэтому количество строк в списке не всегда совпадает с количеством физических сетевых карт.

Количество всех интерфейсов через sysfs:

ls -1 /sys/class/net | wc -l

Количество интерфейсов, которые видит команда ip:

ip -o link show | wc -l

Количество интерфейсов без loopback:

ls -1 /sys/class/net | grep -vx lo | wc -l

Количество административно включённых интерфейсов:

ip -o link show up | wc -l

Команда считает интерфейсы с флагом UP. Она не подтверждает наличие кабеля или радиосоединения. Для физического линка смотрите LOWER_UP в выводе ip link или результат ethtool.

Быстрый список устройств, у которых есть привязка к шине:

for i in /sys/class/net/*; do test -e ${i}/device && basename ${i}; done

Этот список помогает приблизительно отделить физические и bus-backed устройства от чисто виртуальных. Для точного анализа каждого интерфейса проверяйте его отдельно через ip -d link и sysfs.

9. Как определить интерфейс для выхода в сеть

Таблица маршрутизации может содержать несколько default-маршрутов, policy-based routing и отдельные правила для разных источников. Поэтому имя интерфейса нельзя надёжно выбирать по первому совпадению в выводе ip addr.

Проверьте маршрут до конкретного адреса:

ip route get 1.1.1.1
ip route get 192.0.2.10
ip -4 route show default
ip -6 route show default

Типичный результат содержит элементы dev и src:

1.1.1.1 via 192.0.2.1 dev enp3s0 src 192.0.2.15 uid 0

В этом примере внешний трафик пойдёт через enp3s0, а исходным IPv4-адресом станет 192.0.2.15. Для автоматизации извлекайте значение после слова dev, а не поле с фиксированным номером:

ip route get 1.1.1.1 | awk '{for (i=1; i<=NF; i++) if ($i == "dev") {print $(i+1); exit}}'

Если команда возвращает ошибку маршрутизации или пустой вывод, скрипт не сможет определить внешний интерфейс. Проверьте default-маршрут, состояние устройства, адрес шлюза и правила ip rule.

ip route
ip rule
ip route get 1.1.1.1

Найденное имя часто передают в правила NAT. Пример для интерфейса enp3s0:

iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE

Для VPN-туннеля интерфейс может участвовать в правилах пересылки:

iptables -I FORWARD -i wg0 -j ACCEPT

Эти правила требуют проверки существующей политики firewall. На системах с nftables команда iptables может работать через совместимый слой, а итоговые правила нужно проверять в фактическом менеджере firewall.

Параметр AllowedIPs = 0.0.0.0/0, ::/0 в конфигурации VPN задаёт IPv4- и IPv6-сети всего адресного пространства для маршрутизации через туннель. Итоговый путь зависит от настроек peer, таблиц маршрутов и исключений для самого VPN-сервера. Дополнительные сценарии проверки маршрутов, MTU и firewall описаны в шпаргалке по диагностике Linux-маршрутизатора.

10. Практический алгоритм проверки и частые ошибки

Для неизвестного сервера используйте последовательность из пяти шагов:

  1. Получите имена и административный статус: ip -br link.
  2. Проверьте адреса: ip -br addr.
  3. Определите тип спорного устройства: ip -d link show dev имя.
  4. Проверьте маршрут до нужного узла: ip route get адрес.
  5. Для физического порта проверьте линк и драйвер: ethtool имя и ethtool -i имя.
СимптомЧто проверитьВероятная причина
Интерфейс отсутствует в спискеlspci, lsusb, dmesg, драйверУстройство не обнаружено, драйвер не загружен или интерфейс переименован
DOWNip link show dev имяИнтерфейс выключен административно
UP и NO-CARRIERethtool имя, кабель, порт коммутатораНет физического линка или не завершилось автосогласование
Интерфейс включён, IP-адреса нетip addr show dev имя, DHCP-клиент, профиль сетиНе сработал DHCP или адрес не назначен статически
Маршрут использует неправильный интерфейсip route get адрес, ip ruleКонфликт default-маршрутов, метрик или policy routing
После перезагрузки имя изменилосьПрофили NetworkManager или systemd-networkd, MAC-адресКонфигурация привязана к старому имени

Для включения, отключения и безопасного перезапуска интерфейса используйте отдельную инструкцию по управлению сетевым интерфейсом в Linux. На удалённом сервере заранее проверьте способ восстановления доступа: команда ip link set dev имя down сразу разрывает активные соединения через этот интерфейс.

Короткая шпаргалка для большинства задач:

ip -br link                         # имена и состояние
ip -br addr                         # IP-адреса
ip -d link show dev enp3s0          # тип и параметры
ip -s link show dev enp3s0          # счётчики и ошибки
ethtool enp3s0                      # линк, скорость, дуплекс
ip route get 1.1.1.1                # интерфейс выхода
ls -1 /sys/class/net | wc -l       # количество интерфейсов

Главное правило выбора интерфейса простое: сначала найдите имя через ip, затем проверьте его тип, адрес, состояние и маршрут. Для физической сети ищите линк и драйвер, для bridge и VLAN проверяйте родительские устройства, для VPN анализируйте таблицы маршрутизации и правила firewall.

Поделиться:
Сохранить гайд? В закладки браузера