Короткий ответ: команды ip для управления сетевым интерфейсом Linux
Имя интерфейса сначала проверьте командой ip -br link. Чтобы включить устройство, выполните sudo ip link set dev <IFACE> up, для отключения используйте sudo ip link set dev <IFACE> down. Простой перезапуск выполняется двумя командами: sudo ip link set dev <IFACE> down, затем sudo ip link set dev <IFACE> up.
Вместо <IFACE> подставьте реальное имя интерфейса, например enp1s0, ens18, eth0 или wlan0. После изменения проверьте результат командами ip -br link, ip addr show dev <IFACE> и ip route. Команды ip link меняют текущее состояние устройства и обычно не сохраняют постоянную конфигурацию.
Предупреждение для удаленных серверов: отключение интерфейса, через который работает SSH, разорвет текущую сессию и может лишить вас доступа к серверу. Перед операцией подготовьте консоль гипервизора, IPMI, KVM или второй сетевой путь.
Как узнать имя сетевого интерфейса перед изменением
Для компактного списка интерфейсов используйте:
ip -br linkКоманда покажет имена устройств и их текущее состояние, например UP, DOWN или UNKNOWN. Подробный вывод доступен через:
ip link showВ списке могут присутствовать физические Ethernet-адаптеры, Wi-Fi, loopback lo, VLAN, bridge, bond, виртуальные устройства контейнеров и туннели. Не выбирайте lo для управления внешним подключением: это локальный интерфейс, который обслуживает адрес 127.0.0.1 и локальные IPv6-соединения.
Если система использует предсказуемые имена устройств, интерфейс может называться enp1s0 или ens18, даже если в старой инструкции указан eth0. Всегда копируйте имя из вывода своей системы.
Как включить сетевой интерфейс в Linux: ip link set up
Для административного включения интерфейса выполните:
sudo ip link set dev <IFACE> upНапример:
sudo ip link set dev ens18 upПроверить состояние можно так:
ip link show dev <IFACE>
ip -br linkВ подробном выводе ищите флаг UP. Команда включает сетевое устройство на уровне link, но не гарантирует получение IP-адреса, DHCP-аренды, маршрута по умолчанию или физического сигнала на порту.
Как отключить интерфейс: ip link set down
Для временного отключения используйте:
sudo ip link set dev <IFACE> downПосле этого интерфейс перестанет передавать трафик, а соединения, маршруты и сервисы, привязанные к нему, могут стать недоступными. При отключении основного интерфейса активная SSH-сессия, как правило, разрывается сразу.
Операция подходит для краткой проверки, замены кабеля, переключения между интерфейсами и диагностики. Постоянное отключение сетевой карты лучше задавать в конфигурации сетевого менеджера, чтобы устройство не включилось снова после перезагрузки или автоматического переподключения.
Как перезапустить сетевой интерфейс командой ip
Для сброса текущего link-состояния выполните:
sudo ip link set dev <IFACE> down
sudo ip link set dev <IFACE> upПроверьте результат:
ip -br link
ip addr show dev <IFACE>
ip routeТакой перезапуск не всегда запускает DHCP заново, не перечитывает профиль NetworkManager и не меняет настройки systemd-networkd. Если требуется переподнять подключение с новым адресом или параметрами профиля, используйте тот менеджер, который управляет интерфейсом.
Административное состояние и физический линк: почему интерфейс up не всегда означает сеть
Сетевое подключение проходит несколько уровней проверки: устройство существует, административно включено, видит физический или виртуальный carrier, имеет IP-адрес, получает маршрут и достигает нужного узла. Команда ip link set up меняет только административное состояние.
Административно включен, но физического линка нет
Пример подробного вывода:
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> ... state UPФлаги интерпретируются так:
- UP, интерфейс включен административно;
- LOWER_UP, нижний уровень сообщает о наличии carrier;
- NO-CARRIER, устройство включено, но физический или виртуальный сигнал не обнаружен;
- state DOWN, операционное состояние не поднято;
- state UNKNOWN, часто встречается у loopback и некоторых виртуальных устройств и само по себе не доказывает неисправность.
При состоянии UP вместе с NO-CARRIER проверьте кабель, порт коммутатора, SFP-модуль, настройки виртуального свитча, подключение виртуального адаптера и драйвер. Для физических портов полезна инструкция по настройке управляемого коммутатора, где отдельно разбираются доступ к портам и базовая проверка их состояния.
Интерфейс включен, но нет IP-адреса или маршрута
Состояние link не назначает адрес. Проверьте IP-конфигурацию:
ip addr show dev <IFACE>
ip -br addrЕсли в выводе нет нужного IPv4- или IPv6-адреса, интерфейс может быть включен без активного профиля, DHCP-аренды или ручной адресации. Для проверки маршрутов используйте:
ip route
ip -6 route
ip route get 1.1.1.1Команда ip link не запускает DHCP и не создает маршрут по умолчанию. Получением адреса обычно управляет NetworkManager, systemd-networkd или ifupdown. Запуск DHCP-клиента вручную поверх активного профиля может создать конфликт, поэтому сначала определите владельца интерфейса.
Как проверить физический линк Linux
Для Ethernet выполните:
sudo ethtool <IFACE>В выводе найдите поле Link detected. Значение yes указывает на обнаруженный линк, no требует проверки кабеля, порта, SFP, виртуального подключения или драйвера. Поля Speed и Duplex помогают заметить проблемы согласования скорости и дуплекса.
Дополнительная проверка через sysfs:
cat /sys/class/net/<IFACE>/carrierЗначение 1 обычно означает обнаруженный carrier, 0 сообщает о его отсутствии. Для Wi-Fi, VLAN, bridge и других виртуальных устройств вывод ethtool может быть неполным, поэтому учитывайте устройство нижнего уровня, к которому они привязаны.
Как перезапустить сеть в Linux через NetworkManager и systemd-networkd
Ручная команда ip link подходит для разового изменения состояния. Если подключением управляет сетевой менеджер, он может сразу вернуть прежние параметры или снова включить устройство. Перезапуск через владельца профиля обычно лучше подходит для обновления DHCP, адресов, маршрутов и DNS.
Как определить, кто управляет интерфейсом
Для NetworkManager проверьте общий статус и список устройств:
nmcli general status
nmcli device status
systemctl is-active NetworkManagerДля systemd-networkd используйте:
networkctl status
systemctl is-active systemd-networkdДополнительный вывод по конкретному интерфейсу:
networkctl status <IFACE>
nmcli device show <IFACE>Состояние службы еще не доказывает, что она управляет конкретным интерфейсом. NetworkManager может пометить устройство как unmanaged, а systemd-networkd может не найти подходящий файл профиля. Один интерфейс не следует одновременно отдавать NetworkManager, systemd-networkd и ifupdown: менеджеры могут менять адреса, маршруты и состояние устройства друг за другом.
Как включить сетевой интерфейс через nmcli
Если интерфейс обслуживает NetworkManager, подключите устройство командой:
sudo nmcli device connect <IFACE>Проверьте результат:
nmcli device status
ip -br addr
ip routeВ NetworkManager есть разница между устройством и профилем. Устройство, например ens18, это сетевой адаптер ядра. Профиль содержит имя подключения, адресацию, DHCP, DNS, маршруты и другие параметры. Список профилей выводится командой:
nmcli connection showЕсли для устройства подходят несколько профилей, активируйте нужный явно по имени или UUID:
sudo nmcli connection up id "<NAME>"
sudo nmcli connection up uuid <UUID>Как отключить интерфейс через nmcli
Для отключения устройства используйте:
sudo nmcli device disconnect <IFACE>Проверка:
nmcli device statusЭта операция отключает устройство под контролем NetworkManager. Для остановки конкретного профиля используйте:
sudo nmcli connection down id "<NAME>"Отключение устройства и остановка профиля решают разные задачи. Профиль может активироваться снова при изменении состояния устройства или после перезапуска службы, если для него разрешено автоматическое подключение. При необходимости проверьте параметры профиля через nmcli connection show "<NAME>".
Как перезапустить подключение через nmcli
Для переподнятия профиля выполните:
sudo nmcli connection down id "<NAME>"
sudo nmcli connection up id "<NAME>"После активации проверьте устройство, адреса и маршрут:
nmcli device status
ip addr show dev <IFACE>
ip routeЭтот сценарий подходит, когда нужно заново активировать профиль, получить DHCP-адрес, обновить DNS и маршруты. Простой ip link down/up может оставить профиль NetworkManager активным и не выполнить полный цикл переподключения.
Как управлять интерфейсом через systemd-networkd
Статус интерфейса под управлением systemd-networkd можно получить так:
networkctl status <IFACE>Точечное изменение состояния:
sudo networkctl down <IFACE>
sudo networkctl up <IFACE>Перезапуск службы выполняется командой:
sudo systemctl restart systemd-networkdПерезапуск службы может кратковременно затронуть все интерфейсы, которыми управляет systemd-networkd. На удаленном сервере сначала проверьте наличие консоли или второго пути доступа. После операции используйте networkctl status <IFACE>, ip addr, ip route и журнал службы.
Классические ifconfig и ifup/ifdown: когда они уместны
Старые дистрибутивы и унаследованные серверные конфигурации могут использовать пакет net-tools и стек ifupdown. Для новых установок обычно выбирают iproute2 и штатный сетевой менеджер, поскольку старые команды покрывают меньше возможностей и не всегда установлены.
Как включить и отключить интерфейс через ifconfig
Синтаксис команды:
sudo ifconfig <IFACE> up
sudo ifconfig <IFACE> downПример для интерфейса eth0:
sudo ifconfig eth0 up
ifconfig eth0Команда требует установленного пакета net-tools. На минимальной системе вместо нее может быть доступен только ip. Команды ifconfig up/down меняют состояние устройства, но не заменяют работу DHCP-клиента и сетевого менеджера.
Как перезапустить интерфейс через ifup и ifdown
Команды ifupdown используют конфигурацию из /etc/network/interfaces и связанных файлов. Перезапуск выполняется так:
sudo ifdown <IFACE>
sudo ifup <IFACE>После этого проверьте:
ip -br link
ip -br addr
ip routeЕсли интерфейс не описан в конфигурации ifupdown, ifup завершится ошибкой или не применит ожидаемые параметры. Для интерфейса, которым управляет NetworkManager или systemd-networkd, эти команды не подходят как универсальная замена.
Почему нельзя смешивать ifupdown и NetworkManager
Конфликт менеджеров проявляется самопроизвольным переподключением, исчезновением IP-адреса, повторным включением интерфейса и противоречивыми сообщениями в журналах. Один процесс может поднять адрес, а другой удалить его при очередной проверке профиля.
Сначала определите основной механизм управления, затем оставьте интерфейс в его конфигурации. Проверяйте:
nmcli device status
networkctl list
systemctl is-active NetworkManager systemd-networkd networkingДля ifupdown изучите /etc/network/interfaces. Для systemd-networkd проверьте файлы в /etc/systemd/network/. NetworkManager показывает активные профили командой nmcli connection show. Ручной ip удобно использовать для временной диагностики, но постоянные параметры задавайте в одном выбранном менеджере.
Диагностика сетевого интерфейса Linux после включения
После команды up проверяйте сеть снизу вверх: наличие устройства, administrative state, carrier, IP-адрес, маршрут, шлюз, доступ по IP и DNS. Подробная шпаргалка по диагностике сетевых интерфейсов Linux поможет расширить проверку командами ss, tracepath, tcpdump и nmcli.
Проверить состояние интерфейса и IP-адрес
Начните с короткого вывода:
ip -br link
ip -br addrЗатем получите подробности конкретного устройства:
ip addr show dev <IFACE>Проверьте наличие ожидаемого IPv4- или IPv6-адреса, правильную маску и соответствие нужной подсети. Состояние tentative у IPv6 означает, что адрес проходит проверку дубликата. Пометка deprecated указывает на адрес, который система сохраняет для существующих соединений, но не выбирает для новых без необходимости.
Если интерфейс включен, но список адресов пуст, проверьте профиль NetworkManager, настройки systemd-networkd, DHCP и VLAN. Ручное назначение адреса поверх активного DHCP-профиля может привести к двум конкурирующим наборам параметров.
Проверить маршрут по умолчанию и таблицу маршрутизации
Для IPv4 выполните:
ip routeДля IPv6:
ip -6 routeИщите строку с default via. Она указывает шлюз, через который система отправляет трафик в сети, отсутствующие в локальной таблице. Для проверки выбора интерфейса конкретным маршрутом используйте:
ip route get 1.1.1.1
ip rule
ip route show table allНа сервере с несколькими интерфейсами несколько default route могут направить ответный трафик через неправильный канал. В таком сценарии пригодится руководство по нескольким сетевым интерфейсам в Linux, где разобраны метрики, policy-based routing и выбор исходного адреса.
Проверить шлюз, внешний IP-доступ и DNS
Проверяйте уровни последовательно. Сначала определите шлюз в выводе ip route и отправьте ему три ICMP-запроса:
ping -c 3 <GATEWAY>Затем проверьте доступ по внешнему IP-адресу:
ping -c 3 1.1.1.1После этого проверьте разрешение имени:
getent hosts example.com
resolvectl statusЕсли шлюз недоступен, ищите проблему в link, VLAN, локальном адресе, маске, ARP или фильтрации. Если шлюз отвечает, внешний IP недоступен, проверьте маршрут по умолчанию, firewall и правила маршрутизации. Если IP доступен, а имя не разрешается, изучайте DNS-серверы и настройки резолвера.
Отсутствие ответа на ICMP не всегда доказывает полную недоступность узла: firewall может блокировать ping, сохраняя доступ к TCP-сервисам. Проверяйте конкретный сервис отдельной утилитой, например ss, curl или клиентом нужного протокола.
Посмотреть журналы сетевого менеджера и ядра
Для NetworkManager используйте:
journalctl -u NetworkManager -bДля systemd-networkd:
journalctl -u systemd-networkd -bСообщения ядра о драйверах и link-событиях:
journalctl -k -bВ журналах ищите сообщения о DHCP, carrier, тайм-аутах, переименовании интерфейса, отказе драйвера, VLAN, маршрутах и конфликте профилей. Для текущей загрузки параметр -b ограничивает вывод событиями после последнего запуска системы. Это сокращает объем поиска и помогает связать проблему с конкретным перезапуском.
Почему интерфейс не поднимается: последовательность поиска причины
Ошибка команды и отсутствие рабочего подключения относятся к разным ситуациям. Команда может завершиться успешно, а проблема окажется на уровне кабеля, DHCP, маршрута, firewall или менеджера сети.
Интерфейс отсутствует в выводе ip link
Если интерфейса нет в выводе ip link, команда ip link set up не сможет его включить. Сначала проверьте список устройств:
ip link
ls /sys/class/netПроверьте правильность имени. Виртуальная машина может получить другое имя адаптера после изменения настроек гипервизора, а физическая карта может не определиться из-за отсутствия драйвера или отключения PCI-устройства.
Для физического адаптера проверьте сообщения ядра и состояние оборудования. Для VLAN, bridge и bond убедитесь, что нижнее устройство создано и подключено:
ip -d link show
ip link show master <MASTER>Если устройство отсутствует полностью, ищите причину в драйвере, конфигурации виртуальной машины, модуле ядра, VLAN или bond. Управление состоянием не создает отсутствующий интерфейс.
Есть NO-CARRIER или отсутствует физический линк
Проверьте:
ip link show dev <IFACE>
sudo ethtool <IFACE>
cat /sys/class/net/<IFACE>/carrierПри NO-CARRIER проверьте кабель и соседний порт, состояние SFP, скорость, дуплекс и настройки VLAN. Для виртуальной машины проверьте подключение виртуального адаптера, состояние vSwitch и сетевой порт гипервизора. DNS и маршрут не исправят отсутствие carrier.
Интерфейс up, но DHCP не выдает адрес
Проверьте статус менеджера и журнал:
nmcli device status
journalctl -u NetworkManager -b
networkctl status <IFACE>
journalctl -u systemd-networkd -bИщите недоступный DHCP-сервер, ошибки VLAN, неправильный профиль, отсутствие DHCP relay, фильтрацию широковещательных запросов и привязку профиля к другому интерфейсу. На коммутаторе проверьте, попадает ли порт в нужную VLAN.
Ручной адрес может временно вернуть доступ, но он не устраняет проблему DHCP и способен скрыть ошибку профиля. Перед ручным назначением IP проверьте маску, шлюз, конфликт адресов и ожидаемую схему адресации.
Адрес есть, но нет доступа к сети
Проверьте маршрут и выбор интерфейса:
ip addr show dev <IFACE>
ip route
ip route get 1.1.1.1
ip ruleЗатем проверьте шлюз, firewall, MTU и DNS. При нескольких интерфейсах изучите все таблицы маршрутизации:
ip route show table allОшибочная маска может считать удаленную сеть локальной. Неправильный default route направляет пакеты через другой интерфейс. Большой MTU способен ломать отдельные соединения при рабочем ping. Firewall может разрешать доступ к шлюзу и блокировать нужный сервис.
Конфликт сетевых менеджеров или конфигурационных файлов
Сопоставьте активные службы и состояние устройства:
systemctl is-active NetworkManager systemd-networkd networking
nmcli device status
networkctl list
nmcli connection showЕсли интерфейс сам возвращается в UP, теряет адрес или меняет маршрут после ручной команды, проверьте автоматическое подключение профиля и конфигурационные файлы. Один интерфейс должен иметь одного основного владельца. После его определения отключите лишнюю службу или уберите интерфейс из ее конфигурации, затем повторите проверку.
Безопасное управление интерфейсом на удаленном сервере
Отключение интерфейса на удаленном сервере может оборвать SSH, остановить текущие соединения и сделать сервер недоступным. Команда up после этого не гарантирует восстановление существующей TCP-сессии.
Почему отключение интерфейса разрывает SSH
SSH использует IP-адрес и маршрут через конкретный интерфейс. После команды down сервер перестает отвечать по этому пути, а TCP-соединение теряет сетевой маршрут. Даже если интерфейс поднять через несколько секунд, прежняя сессия может не восстановиться и потребует нового подключения.
Риск выше при работе с единственным интерфейсом, изменении default route, обновлении VLAN и перезапуске службы networkd или NetworkManager. Для production-системы используйте точечную операцию и оставляйте доступ к консоли.
Что проверить перед изменением на production-сервере
Сохраните текущие параметры и определите путь SSH:
ip -br link
ip -br addr
ip route
ip route get 1.1.1.1
nmcli general status
networkctl statusПроверьте имя интерфейса, IP-адрес, шлюз, активный профиль и наличие второго доступа. Для критичных систем подготовьте IPMI, KVM, консоль гипервизора или другой out-of-band-канал. Если операция нужна для теста, отдельный VDS в Timeweb Cloud позволит проверить команды без риска для рабочего узла.
Перед изменением подготовьте план отката: точную команду возврата, имя профиля, текущий IP, маршрут и способ доступа к консоли. Не отключайте интерфейс, если у вас нет подтвержденного пути восстановления.
Для общего порядка администрирования Linux пригодится практическое руководство по Linux для IT-специалистов, где сетевые команды рассматриваются вместе с базовой настройкой сервера.
Как подтвердить восстановление подключения
После включения или переподнятия профиля проверьте результат по цепочке:
ip -br link
ip addr show dev <IFACE>
ip route
ping -c 3 <GATEWAY>
ping -c 3 1.1.1.1
getent hosts example.comДля NetworkManager добавьте:
nmcli device status
nmcli connection show --activeДля systemd-networkd:
networkctl status <IFACE>Проверяйте доступ к нужному сервису, а не ограничивайтесь успешным завершением команды. На сервере с несколькими интерфейсами убедитесь, что ответный трафик идет через ожидаемый маршрут.
Краткая шпаргалка: какую команду выбрать
| Задача | Команда | Что проверяет или меняет |
|---|---|---|
| Узнать интерфейсы | ip -br link | Короткий список устройств и link-состояний |
| Получить подробное состояние | ip link show dev <IFACE> | Флаги UP, LOWER_UP, NO-CARRIER и операционное состояние |
| Включить интерфейс | sudo ip link set dev <IFACE> up | Меняет административное состояние на включенное |
| Отключить интерфейс | sudo ip link set dev <IFACE> down | Останавливает передачу трафика через устройство |
| Перезапустить link | sudo ip link set dev <IFACE> downsudo ip link set dev <IFACE> up | Сбрасывает текущее состояние без перезагрузки системы |
| Подключить устройство через NetworkManager | sudo nmcli device connect <IFACE> | Активирует подходящий профиль NetworkManager |
| Отключить устройство через NetworkManager | sudo nmcli device disconnect <IFACE> | Отключает устройство под контролем NetworkManager |
| Переподнять профиль NetworkManager | sudo nmcli connection down id "<NAME>"sudo nmcli connection up id "<NAME>" | Повторно активирует профиль, адресацию и маршруты |
| Проверить systemd-networkd | networkctl status <IFACE> | Показывает состояние интерфейса и профиль networkd |
| Перезапустить systemd-networkd | sudo systemctl restart systemd-networkd | Перезапускает службу и может затронуть несколько интерфейсов |
| Использовать классический ifconfig | sudo ifconfig <IFACE> upsudo ifconfig <IFACE> down | Меняет состояние в системах с установленным net-tools |
| Перезапустить ifupdown | sudo ifdown <IFACE>sudo ifup <IFACE> | Применяет конфигурацию из /etc/network/interfaces |
| Проверить физический линк | sudo ethtool <IFACE> | Показывает carrier, скорость, дуплекс и состояние Ethernet |
| Проверить адреса | ip addr show dev <IFACE> | Показывает IPv4-, IPv6-адреса и их состояния |
| Проверить маршруты | ip routeip -6 route | Показывает локальные маршруты и default route |
ip подходит для текущего состояния интерфейса и быстрой диагностики. Постоянные настройки адресов, DHCP, DNS и маршрутов задавайте в конфигурации фактического сетевого менеджера. Перед отключением интерфейса на удаленном сервере проверяйте SSH-маршрут и наличие консольного доступа.