Короткий ответ: как включить, отключить и перезапустить сетевой интерфейс в Linux
Имя интерфейса сначала проверьте командой ip -br link. Дальше нужны всего три операции: включение, отключение и перезапуск.
# имя интерфейса и состояние 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 who ss -tnp
Зафиксируйте, через какой интерфейс и адрес идет ваша сессия, чтобы случайно не отключить нужный путь. Убедитесь, что у вас есть запасной доступ:
- известно имя интерфейса и маршрут, по которому идет SSH;
- есть консоль гипервизора, IPMI, KVM или второй путь доступа;
- текущие ip link, ip addr и ip route сохранены;
- подготовлена команда возврата интерфейса в UP;
- есть окно обслуживания и согласование с командой.
Чтобы не потерять доступ, на время рискованной операции можно заранее запланировать автоматический возврат интерфейса в UP:
nohup bash -c 'sleep 300; ip link set dev <IFACE> up' &
Если все прошло успешно, фоновую задачу достаточно дождаться или снять, а если связь пропала, через пять минут интерфейс поднимется и вернет доступ. Учитывайте, что такой откат именно поднимает интерфейс, поэтому для задач с намеренным down он не подходит.
FAQ: частые вопросы про сетевые интерфейсы Linux
Как перезапустить сеть в Linux без перезагрузки?
Для одного интерфейса достаточно сбросить link: sudo ip link set dev <IFACE> down, затем sudo ip link set dev <IFACE> up. Если адрес и маршруты выдает менеджер, переподнимите профиль: sudo nmcli connection down id "<NAME>" и sudo nmcli connection up id "<NAME>", либо перезапустите службу sudo systemctl restart systemd-networkd. Полная перезагрузка сервера для этого не нужна.
Почему интерфейс UP, но сети нет?
Административное состояние, это только первый уровень. Проверьте физический линк (NO-CARRIER, sudo ethtool <IFACE>, cat /sys/class/net/<IFACE>/carrier), наличие IP-адреса (ip addr show dev <IFACE>), маршрут по умолчанию (ip route) и DNS. Частая причина в том, что интерфейс поднят вручную, но профиль менеджера не активирован, а DHCP не запрошен.
Чем nmcli отличается от ip link?
ip link работает напрямую с устройством ядра и меняет только administrative state. nmcli управляет профилями NetworkManager: адресами, DHCP, DNS, маршрутами и автоматическим подключением. Для разовой диагностики удобнее ip link, для постоянной конфигурации профиль в менеджере.
Как безопасно менять сеть по SSH?
Отключайте только тот интерфейс, через который SSH не идет, либо заранее подготовьте консоль гипервизора, IPMI, KVM или второй сетевой путь. Зафиксируйте текущие ip, addr и route, держите под рукой команду возврата в UP и по возможности запланируйте автоматический откат. Для полного переподключения используйте менеджер, а не ручной down/up.