Как посмотреть сетевые интерфейсы в 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 addr | IPv4, IPv6, префиксы подсетей и области действия адресов |
| MAC-адрес | ip link show dev enp1s0 | Значение после link/ether |
| Скорость и линк | ethtool enp1s0 | Speed, Duplex, Link detected |
Что именно можно узнать из вывода
- Интерфейс существует в системе: его имя присутствует в выводе
ip link. - Интерфейс включен административно: среди флагов есть
UP. - Устройство видит нижний уровень соединения: часто присутствует флаг
LOWER_UP. - Есть физический линк:
ethtoolвозвращаетLink detected: yes. - Назначен IP-адрес: в выводе
ip addrесть строкиinetилиinet6. - Есть маршрут наружу: команда
ip routeпоказывает строку сdefault via.
Эти признаки описывают разные уровни. Интерфейс может присутствовать в системе, быть включенным и иметь IP-адрес, но не видеть кабель или порт коммутатора.
Список сетевых интерфейсов Linux: команда ip link
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 и префикс
| Фрагмент | Расшифровка |
|---|---|
inet | IPv4-адрес |
inet6 | IPv6-адрес |
/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-адрес Linux: ip link и sysfs
MAC-адрес отображается в выводе ip link после типа канального устройства. Для физического Ethernet-интерфейса обычно используется строка link/ether.
MAC-адрес в выводе ip link
Получить адрес конкретного интерфейса можно так:
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 не следует считать адресом физической сетевой карты.
Состояние интерфейса Linux: UP, DOWN и физический линк
Для диагностики разделяйте три признака: интерфейс существует, он включен средствами операционной системы, физическое или виртуальное соединение доступно. Команды 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 и NO-CARRIER
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
| Поле | Примеры | Что проверять |
|---|---|---|
Speed | 100Mb/s, 1000Mb/s, 10000Mb/s | Совпадает ли фактическая скорость с возможностями порта и тарифом канала |
Duplex | Full, Half | Для современных Ethernet-сетей обычно ожидается Full |
Auto-negotiation | on, off | Согласуются ли скорость и дуплекс автоматически |
Port | Twisted Pair, FIBRE | Тип физического подключения |
Link detected | yes, 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
Проверьте следующие условия:
- В списке есть ожидаемый интерфейс, например
ens18илиenp1s0. - У интерфейса состояние
UP, а для физического подключения присутствуетLOWER_UP. - Назначен адрес из нужной подсети, а не только
127.0.0.1или IPv6 link-local. - В таблице маршрутов есть строка
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 |
| Проверить NetworkManager | nmcli device status |
| Проверить systemd-networkd | networkctl status enp1s0 |
Рабочий алгоритм простой: найдите интерфейс, проверьте UP и LOWER_UP, найдите IP-адрес, сопоставьте MAC-адрес, проверьте ethtool, затем переходите к маршрутам, DNS, firewall и доступности сервисов. Такой порядок помогает быстро определить, на каком уровне возникла проблема.