Как посмотреть сетевые интерфейсы в Linux: список, IP- и MAC-адреса, состояние | AdminWiki

Как посмотреть сетевые интерфейсы в Linux: список, IP- и MAC-адреса, состояние

09 сентября 2026 14 мин. чтения
Содержание статьи

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

Для списка сетевых интерфейсов Linux выполните ip link. Для просмотра IPv4- и IPv6-адресов используйте ip addr. Скорость Ethernet-подключения, режим дуплекса и физический линк проверяются командой ethtool <имя_интерфейса>, например ethtool enp1s0.

Базовая проверка сервера выглядит так:

ip -br link
ip -br addr
ethtool enp1s0

Сначала определите имя интерфейса и его административное состояние, затем найдите IP-адрес, проверьте MAC-адрес и наличие физического линка. Такой порядок помогает отличить выключенный интерфейс от отсутствия кабеля, ошибки DHCP или проблемы с драйвером.

Минимальный набор команд

ЗадачаКомандаЧто показывает
Список интерфейсовip linkИмена, флаги, тип устройства и состояние
Краткий списокip -br linkКомпактный список с состоянием каждого интерфейса
IP-адресаip addrIPv4, IPv6, префиксы подсетей и области действия адресов
MAC-адресip link show dev enp1s0Значение после link/ether
Скорость и линкethtool enp1s0Speed, Duplex, Link detected

Что именно можно узнать из вывода

  • Интерфейс существует в системе: его имя присутствует в выводе ip link.
  • Интерфейс включен административно: среди флагов есть UP.
  • Устройство видит нижний уровень соединения: часто присутствует флаг LOWER_UP.
  • Есть физический линк: ethtool возвращает Link detected: yes.
  • Назначен IP-адрес: в выводе ip addr есть строки inet или inet6.
  • Есть маршрут наружу: команда ip route показывает строку с default via.

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

ip link входит в пакет iproute2, который установлен в большинстве современных серверных дистрибутивов Linux. Команда работает с физическими, виртуальными, туннельными интерфейсами, bridge, bond, VLAN и loopback.

Как вывести все интерфейсы

Подробный список выводит команда:

ip link show

Сокращенная запись с тем же назначением:

ip link

Для первичной проверки большого сервера удобнее табличный формат:

ip -br link

Пример компактного вывода:

lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
enp1s0            UP             52:54:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
enp2s0            DOWN           52:54:00:65:43:21 <BROADCAST,MULTICAST>
docker0           DOWN           02:42:8a:11:22:33 <NO-CARRIER,BROADCAST,MULTICAST,UP>

В первом столбце указано имя интерфейса, во втором его краткое состояние, затем отображается MAC-адрес и набор флагов. Интерфейс lo используется для локального обмена внутри системы. Имена enp1s0 и enp2s0 обычно относятся к Ethernet-устройствам, а docker0 создается Docker.

Как найти конкретный интерфейс

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

ip link show dev enp1s0

Вместо enp1s0 могут встречаться ens18, eth0, eno1 и другие имена. Сетевые устройства получают имена по правилам predictable network interface names, поэтому на двух серверах одинаковой модели названия могут отличаться.

Виртуальные устройства обычно имеют имена docker0, cni0, br0, veth..., bond0 или vlan100. Перед изменением конфигурации проверьте роль каждого интерфейса, особенно если сервер доступен по SSH.

Как читать флаги и состояние

Типичная строка подробного вывода выглядит так:

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
ПолеЗначение
2Внутренний номер интерфейса в ядре Linux
enp1s0Имя, которое используется в командах и конфигурации
BROADCASTИнтерфейс поддерживает широковещательные кадры
MULTICASTИнтерфейс поддерживает многоадресный трафик
UPИнтерфейс включен административно
LOWER_UPНижний уровень соединения сообщает о готовности
NO-CARRIERАдминистративно интерфейс включен, но физический сигнал не обнаружен
state UPТекущее операционное состояние интерфейса
state UNKNOWNСостояние не определено драйвером или не имеет обычного смысла для устройства

Флаг UP не подтверждает наличие кабеля. Интерфейс может быть включен в ядре, но находиться в состоянии NO-CARRIER. Для loopback и ряда виртуальных устройств значение UNKNOWN считается обычным и само по себе не указывает на неисправность.

Как проверить IP-адрес в Linux: команда ip addr

ip addr, или сокращенно ip a, показывает адреса, назначенные интерфейсам. Команда позволяет увидеть IPv4, IPv6, префикс подсети, broadcast-адрес и область действия каждого адреса.

Просмотр адресов всех интерфейсов

Полный вывод:

ip addr show

Краткий обзор:

ip -br addr

Пример:

lo               UNKNOWN        127.0.0.1/8 ::1/128
enp1s0            UP             10.10.20.15/24 fe80::5054:ff:fe12:3456/64
enp2s0            DOWN           192.168.50.20/24

В кратком выводе видно, что enp1s0 получил IPv4-адрес 10.10.20.15/24 и локальный IPv6-адрес. У lo есть адреса, но они предназначены для локального обмена и не используются как адрес физического подключения.

Просмотр IP-адреса одного интерфейса

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

ip addr show dev enp1s0

В подробном выводе ищите строки такого вида:

inet 10.10.20.15/24 brd 10.10.20.255 scope global dynamic enp1s0
inet6 2001:db8:10:20::15/64 scope global dynamic
inet6 fe80::5054:ff:fe12:3456/64 scope link

Один интерфейс может иметь несколько адресов. Например, DHCP-адрес может соседствовать со статическим адресом, а IPv6 обычно получает глобальный и link-local-адрес.

Как интерпретировать inet, scope и префикс

ФрагментРасшифровка
inetIPv4-адрес
inet6IPv6-адрес
/24Префикс IPv4-подсети, аналог маски 255.255.255.0
/64Часто используемый префикс IPv6-подсети
scope hostАдрес действует внутри локального хоста
scope linkАдрес действует в пределах локального канала
scope globalАдрес может использоваться за пределами локального интерфейса согласно маршрутам и правилам сети
dynamicАдрес получен динамически, например через DHCP или SLAAC

Адрес 127.0.0.1/8 относится к loopback и доступен только внутри самого сервера. IPv4-адрес из диапазона 169.254.0.0/16 обычно появляется при автоматической локальной адресации, когда DHCP-адрес получить не удалось. IPv6-адрес, начинающийся с fe80::, имеет область scope link и не заменяет глобальный или адрес локальной подсети.

Наличие строки inet не гарантирует доступность сети. Для выхода за пределы локальной подсети проверьте маршрут по умолчанию:

ip route

MAC-адрес отображается в выводе ip link после типа канального устройства. Для физического Ethernet-интерфейса обычно используется строка link/ether.

Получить адрес конкретного интерфейса можно так:

ip link show dev enp1s0

Пример результата:

2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

MAC-адрес здесь равен 52:54:00:12:34:56. Значение brd ff:ff:ff:ff:ff:ff обозначает широковещательный адрес Ethernet и не относится к MAC-адресу конкретной карты.

Для краткого списка всех MAC-адресов:

ip -br link

Проверка MAC-адреса через sysfs

Файл в sysfs возвращает только адрес:

cat /sys/class/net/enp1s0/address

Результат:

52:54:00:12:34:56

Такой способ удобен для shell-скриптов, инвентаризации и автоматической проверки нескольких интерфейсов. Список доступных имен можно получить командой:

ls /sys/class/net

В каталоге обычно присутствуют lo, физические Ethernet-устройства и созданные службами виртуальные интерфейсы.

Физический и виртуальный MAC-адрес

MAC-адрес не всегда принадлежит физической сетевой карте. Ядро Linux назначает канальные адреса виртуальным устройствам тоже.

  • enp1s0, ens18 или eth0 обычно представляют физический или виртуальный Ethernet-адаптер.
  • br0 получает MAC-адрес bridge и объединяет порты на канальном уровне.
  • bond0 представляет агрегированный интерфейс с несколькими физическими портами.
  • veth... используется как пара виртуальных Ethernet-интерфейсов, например при работе контейнеров.
  • docker0 и cni0 обслуживают виртуальные сети контейнеров.
  • lo имеет тип link/loopback и не связан с физическим адаптером.

Перед настройкой DHCP, bridge или Kubernetes зафиксируйте имя физического интерфейса и его MAC-адрес. MAC виртуального bridge или veth не следует считать адресом физической сетевой карты.

Для диагностики разделяйте три признака: интерфейс существует, он включен средствами операционной системы, физическое или виртуальное соединение доступно. Команды ip link и ethtool показывают эти уровни с разных сторон.

Административное состояние: UP или DOWN

Проверить административное состояние можно командой:

ip link show dev enp1s0

Флаг UP внутри угловых скобок означает, что интерфейс включен. Если флага нет, устройство отключено административно. Состояние часто отображается так:

3: enp2s0: <BROADCAST,MULTICAST> mtu 1500 state DOWN

Временное включение выполняется командой:

sudo ip link set dev enp2s0 up

Отключение:

sudo ip link set dev enp2s0 down

Эти команды меняют состояние до следующего перезапуска или до применения настроек NetworkManager, systemd-networkd, Netplan или ifupdown. На удаленном сервере не отключайте интерфейс, через который работает SSH, если рядом нет консольного доступа. Подробная инструкция по безопасному управлению состоянием интерфейсов приведена в материале о включении, отключении и перезапуске сетевого интерфейса в Linux.

LOWER_UP обычно означает, что нижний уровень сообщает о рабочем соединении. Для физического Ethernet это часто означает обнаруженный сигнал на линии. Флаг NO-CARRIER указывает, что интерфейс административно включен, но несущий сигнал не обнаружен.

Типичный пример интерфейса без линка:

2: enp1s0: <BROADCAST,MULTICAST,UP,NO-CARRIER> mtu 1500 state DOWN

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

Проверка линка через ethtool

Для физического Ethernet выполните:

ethtool enp1s0

В выводе найдите строку:

Link detected: yes

Значение yes говорит, что драйвер видит физический линк. Значение no указывает на отсутствие сигнала на линии. Команда может вернуть ограниченный набор полей или сообщение о неподдерживаемой операции для виртуального интерфейса. Это ожидаемо для части устройств в виртуальных машинах и контейнерах.

Как проверить скорость соединения Linux через ethtool

ethtool показывает параметры канального соединения, которые не видны в полном выводе ip addr. Основные поля для Ethernet: скорость, дуплекс, автосогласование, тип порта, состояние линка и драйвер.

Скорость и режим дуплекса

Выполните:

ethtool enp1s0

Ищите примерно такие строки:

Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
Link detected: yes
ПолеПримерыЧто проверять
Speed100Mb/s, 1000Mb/s, 10000Mb/sСовпадает ли фактическая скорость с возможностями порта и тарифом канала
DuplexFull, HalfДля современных Ethernet-сетей обычно ожидается Full
Auto-negotiationon, offСогласуются ли скорость и дуплекс автоматически
PortTwisted Pair, FIBREТип физического подключения
Link detectedyes, noОбнаруживает ли устройство физический сигнал

Если вместо ожидаемых 1 Gb/s отображается 100 Mb/s, проверьте кабель, порт коммутатора, SFP-модуль и настройки автосогласования. Значение Half для современной локальной сети требует отдельной проверки оборудования и драйвера.

Драйвер и поддерживаемые возможности

Информация о драйвере и прошивке выводится командой:

ethtool -i enp1s0

Пример:

driver: virtio_net
version: 1.0.0
firmware-version: 
bus-info: 0000:00:05.0

Поле driver показывает имя драйвера ядра, version его версию, firmware-version версию прошивки, а bus-info связывает интерфейс с устройством на шине. Пустое поле прошивки часто встречается у виртуальных адаптеров.

Если подозрение падает на оборудование, сопоставьте результат с командами:

lspci -nnk
lshw -C network
dmesg -T | grep -iE 'ethernet|network|firmware|link'

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

Если интерфейс не работает: диагностика по шагам

Используйте последовательность: наличие интерфейса, административное состояние, IP-адрес, физический линк, маршрут, счетчики ошибок и сообщения ядра. Такой порядок сокращает число предположений и помогает отделить сбой интерфейса от проблемы DNS, firewall или удаленного сервиса.

Интерфейс отсутствует в списке

Начните с короткого списка:

ip -br link

Если ожидаемого имени нет, проверьте следующие варианты:

  • Устройство получило другое имя, например ens18 вместо ожидаемого eth0.
  • Это физический адаптер, который не обнаружен ядром.
  • Интерфейс создается только после запуска виртуальной машины, контейнерного рантайма или VPN-службы.
  • Ожидаемый порт входит в bond или bridge и отображается под другим именем.

Для PCI-устройств используйте:

lspci -nnk

Для USB-адаптера:

lsusb

Сообщения ядра можно проверить командами:

dmesg -T | grep -iE 'ethernet|network|firmware|link'
journalctl -k -b

Если устройство присутствует в lspci, но интерфейс не появился, ищите сведения о драйвере, прошивке и ошибках загрузки. Если устройство отсутствует и на PCI-, и на USB-уровне, проверяйте настройки виртуальной машины, BIOS или физическое подключение оборудования.

Интерфейс есть, но находится в DOWN

Проверьте флаги:

ip link show dev enp1s0

Для временной проверки включите устройство:

sudo ip link set dev enp1s0 up

После этого снова выполните:

ip -br link
ip -br addr

Если интерфейс поднялся, выясните, какая служба должна включать его автоматически:

nmcli device status
networkctl list

NetworkManager может считать устройство disconnected или unmanaged. systemd-networkd может не иметь подходящего файла сети. Ручная команда ip link set ... up помогает проверить устройство, но сама по себе не создает постоянную конфигурацию и не гарантирует получение IP-адреса после перезагрузки.

Интерфейс UP, но нет IP-адреса

Проверьте адреса:

ip addr show dev enp1s0

Если строк inet и inet6 нет, проверьте DHCP-профиль и службу управления сетью. Для NetworkManager полезны:

nmcli device show enp1s0
nmcli connection show --active

Для systemd-networkd:

networkctl status enp1s0

Отсутствие IP может быть связано с неактивным DHCP, неправильным VLAN, отсутствием профиля или ошибкой аутентификации на сетевом оборудовании. Если статический адрес должен задаваться вручную, проверьте префикс подсети и имя интерфейса в конфигурации.

Отсутствие IP и отсутствие маршрута описывают разные проблемы. Интерфейс может иметь адрес локальной сети, но не иметь маршрута по умолчанию. Проверка маршрутов выполняется отдельно:

ip route
ip -6 route

Есть IP-адрес, но нет физического линка

Сопоставьте сведения двух команд:

ip link show dev enp1s0
ethtool enp1s0

Сочетание UP, NO-CARRIER и Link detected: no указывает на проблему с физическим или виртуальным каналом. Проверьте кабель, порт коммутатора, SFP-трансивер, состояние VLAN и профиль сетевого адаптера в гипервизоре.

Наличие IP-адреса в выводе ip addr не подтверждает связь с соседним узлом. После восстановления линка проверьте ARP или IPv6-соседей, маршрут и доступность конкретного адреса:

ip neigh
ip route get 10.10.20.1

На сервере с несколькими интерфейсами команда ip route get показывает, через какой интерфейс и с какого исходного адреса ядро отправит пакет.

Интерфейс работает нестабильно

Счетчики ошибок и отброшенных пакетов смотрят так:

ip -s link show dev enp1s0

Обратите внимание на поля RX errors, RX dropped, TX errors, TX dropped и изменения состояния carrier. Для аппаратной статистики используйте:

ethtool -S enp1s0

Названия счетчиков зависят от драйвера. Повторяющиеся ошибки CRC, carrier changes, сбросы очередей и рост dropped требуют проверки кабеля, порта, MTU, загрузки интерфейса и журнала ядра.

dmesg -T | tail -n 100
journalctl -k -b

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

Альтернативные команды для просмотра сетевой конфигурации

iproute2 остается основным набором команд для просмотра интерфейсов, адресов и маршрутов. Дополнительные инструменты показывают состояние службы управления сетью, сведения об оборудовании или активные соединения.

nmcli для систем с NetworkManager

Краткое состояние устройств:

nmcli device status

Подробные параметры интерфейса:

nmcli device show enp1s0

Активные подключения:

nmcli connection show --active

nmcli различает сетевое устройство и профиль подключения. Интерфейс может существовать и быть включен, но не иметь активного профиля. Статус unmanaged означает, что NetworkManager не управляет устройством, поэтому причину нужно искать в другой службе или конфигурации.

networkctl для systemd-networkd

Список устройств и их состояние:

networkctl list

Подробный статус интерфейса:

networkctl status enp1s0

Команда помогает проверить связь интерфейса с systemd-networkd, состояние линка, назначенные адреса и примененный файл сети. Если устройство отображается как unmanaged или configuring, проверьте имя интерфейса и соответствие шаблону конфигурации.

lshw и данные об оборудовании

Информация о сетевых устройствах:

sudo lshw -C network

В выводе могут присутствовать модель адаптера, производитель, bus info, драйвер, логическое имя, MAC-адрес и состояние устройства. lshw полезен, когда имя интерфейса известно не полностью или нужно сопоставить несколько физических карт.

Старая команда ifconfig из пакета net-tools все еще встречается в документации:

ifconfig -a

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

ss -tulpen

Подробная последовательность проверки интерфейса, линка, маршрутов, DNS и портов собрана в практической шпаргалке по диагностике сетевых интерфейсов Linux.

Практические сценарии проверки сетевых интерфейсов

Первичная проверка нового Linux-сервера

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

ip -br link
ip -br addr
ip route

Проверьте следующие условия:

  1. В списке есть ожидаемый интерфейс, например ens18 или enp1s0.
  2. У интерфейса состояние UP, а для физического подключения присутствует LOWER_UP.
  3. Назначен адрес из нужной подсети, а не только 127.0.0.1 или IPv6 link-local.
  4. В таблице маршрутов есть строка default via с правильным шлюзом.

Если сервер размещен в облаке, проверьте настройки виртуального адаптера в панели провайдера. Для отдельного тестового Linux-сервера можно использовать облачную инфраструктуру Timeweb Cloud, а затем проверить выданный интерфейс теми же командами.

Проверка перед настройкой Docker, Kubernetes или bridge

Сначала сохраните исходное состояние хоста:

ip -br link
ip -br addr
ip route
ip -d link show

Разделите интерфейсы по назначению:

  • Физический или виртуальный uplink, например enp1s0 или ens18.
  • Bridge, например br0 или docker0.
  • Интерфейс контейнерной сети, например cni0.
  • Пара veth, соединяющая сетевое пространство контейнера с bridge.
  • Агрегированный интерфейс bond0 и его физические порты.

Для bridge можно проверить его порты:

ip link show master br0

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

Быстрый сбор сведений для отчета

Для тикета или передачи коллеге соберите компактный набор:

ip -br link
ip -br addr
ip route
ethtool enp1s0
ip -s link show dev enp1s0

В описании проблемы укажите имя интерфейса, его флаги, IPv4- и IPv6-адреса, MAC-адрес, значение Link detected, скорость, дуплекс и счетчики ошибок. Добавьте модель адаптера и драйвер из lspci -nnk или ethtool -i, если проблема связана с обнаружением оборудования.

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

Если после проверки интерфейса проблема выглядит как сбой шлюза, policy routing, MTU или firewall, продолжайте диагностику маршрута. Для этого пригодится чеклист диагностики маршрутизации на Linux-сервере.

Итог: шпаргалка по сетевым интерфейсам Linux

Какая команда нужна для конкретной задачи

ЗадачаКоманда или признак
Вывести все интерфейсыip link или ip link show
Получить краткий списокip -br link
Проверить один интерфейсip link show dev enp1s0
Посмотреть IPv4- и IPv6-адресаip addr или ip -br addr
Проверить адрес одного интерфейсаip addr show dev enp1s0
Найти MAC-адресЗначение после link/ether в ip link
Получить только MAC-адресcat /sys/class/net/enp1s0/address
Проверить административное состояниеФлаг UP или state DOWN в ip link
Проверить нижний уровеньФлаг LOWER_UP или NO-CARRIER
Проверить физический линкethtool enp1s0, поле Link detected
Проверить скорость и дуплексethtool enp1s0, поля Speed и Duplex
Проверить драйверethtool -i enp1s0 или lspci -nnk
Проверить счетчики ошибокip -s link show dev enp1s0 и ethtool -S enp1s0
Проверить NetworkManagernmcli device status
Проверить systemd-networkdnetworkctl status enp1s0

Рабочий алгоритм простой: найдите интерфейс, проверьте UP и LOWER_UP, найдите IP-адрес, сопоставьте MAC-адрес, проверьте ethtool, затем переходите к маршрутам, DNS, firewall и доступности сервисов. Такой порядок помогает быстро определить, на каком уровне возникла проблема.

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