PQ
PQ.Hosting

Валюта

Как перезапустить сеть в Ubuntu 20.04 / 22.04 / 24.04: systemctl, netplan и nmcli

Автор
PQ
12 марта 2026
3 мин чтения
30 просмотров
Как перезапустить сеть в Ubuntu 20.04 / 22.04 / 24.04: systemctl, netplan и nmcli

Прежде чем запускать любую из команд ниже — один нюанс который съедает час времени у тех кто работает удалённо.

Если вы на SSH-сессии: перезапуск всего сетевого стека обрывает соединение. Чтобы успеть переподключиться до применения изменений — завернуть команду в задержку:

echo "sudo systemctl restart networking" | at now + 1 minute

Даёт минуту чтобы закрыть сессию, переподключиться и убедиться что всё поднялось. Если at не установлен:

sudo apt install at

Альтернатива — перезапускать не весь стек, а только конкретный интерфейс. Тот который не используется для текущего SSH. Об этом ниже.

Определить что управляет сетью

На разных Ubuntu разные инструменты. Сначала понять с чем имеем дело:

systemctl is-active NetworkManager
systemctl is-active networking

Если первая команда вернула active — сеть под NetworkManager (типично для десктопа и Ubuntu 20.04+). Если вторая — под networking (типично для серверов и старых конфигов).

Проверить есть ли Netplan-конфиги:

ls /etc/netplan/

Если файлы есть — система использует Netplan как прослойку над NetworkManager или systemd-networkd.

Netplan: применить конфиг без полного перезапуска

Актуально для Ubuntu 18.04 и новее. Конфиги хранятся в /etc/netplan/*.yaml. После изменений применить:

sudo netplan apply

Применяет только дельту — трогает интерфейсы которые изменились, остальные не перезапускает. Для SSH это безопаснее чем systemctl restart.

Режим с автооткатом — применяет конфиг на 120 секунд, затем откатывает если не подтвердить:

sudo netplan try

Нажать Enter для подтверждения. Если ничего не нажать — через две минуты вернётся старый конфиг. Страховка от ошибки в YAML которая заблокирует доступ к серверу.

NetworkManager: десктоп и серверы с GUI

Полный перезапуск демона:

sudo systemctl restart NetworkManager

Мягкий вариант через nmcli — пересоздаёт соединения без перезапуска демона:

sudo nmcli networking off && sudo nmcli networking on

Перезапустить конкретное соединение по имени — не трогая остальные:

nmcli connection show
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"

Имя соединения берётся из вывода nmcli connection show.

networking.service: серверный вариант

На серверах без GUI сеть часто управляется через /etc/network/interfaces и службу networking:

sudo systemctl restart networking

Остановить и запустить раздельно — если restart не сработал:

sudo systemctl stop networking && sudo systemctl start networking

Статус после перезапуска:

systemctl status networking

Строка active (running) — всё поднялось. failed — смотреть логи:

journalctl -u networking -n 50

ip link: перезапуск одного интерфейса

Самый безопасный способ при работе через SSH — трогать только тот интерфейс который не используется для текущего соединения.

Посмотреть все интерфейсы:

ip link show

Опустить и поднять нужный:

sudo ip link set eth1 down && sudo ip link set eth1 up

Если после подъёма IP не появился:

sudo dhclient eth1

Назначить статический IP вручную:

sudo ip addr add 192.168.1.100/24 dev eth1
sudo ip route add default via 192.168.1.1

Диагностика после перезапуска

Адреса интерфейсов:

ip addr show

Таблица маршрутизации:

ip route

DNS-серверы:

systemd-resolve --status | grep "DNS Servers"

Пинг шлюза — проверить что маршрут есть:

ping -c 4 $(ip route | grep default | awk '{print $3}')

Логи NetworkManager за последние 10 минут:

journalctl -u NetworkManager --since "10 minutes ago"

Шпаргалка

Ситуация Команда
Десктоп Ubuntu, NetworkManager sudo systemctl restart NetworkManager
Мягкий сброс через nmcli sudo nmcli networking off && sudo nmcli networking on
Сервер, конфиг в /etc/netplan/ sudo netplan apply
Netplan с автооткатом sudo netplan try
Сервер, конфиг в /etc/network/interfaces sudo systemctl restart networking
Один интерфейс (безопасно через SSH) sudo ip link set eth1 down && sudo ip link set eth1 up
Запросить IP через DHCP sudo dhclient eth1
Задержка перед перезапуском echo "sudo systemctl restart networking" | at now + 1 minute

Поделиться статьей

Похожие статьи