How to restart network interfaces on Linux
O nce you make changes in the network interface, they affect the network services manager of your system. To enable the system or machine to connect to the network, one needs to restart the network interface to apply the changes without rebooting your server.
This article will guide you on restarting the network interface in various Linux distributions.
Note: When running SSH/ VNC or other remote-based sessions, you should take precautions since restarting the network interface or service can result in network disconnectivity, resulting in connection loss.
We will handle the following topics.
What is a network interface?
A network interface refers to the point of connection between a computer and the network. It can be either software (especially with Virtual machines) or a hardware component. When dealing with network interfaces, there is one term that you will likely come across – NIC (Network Interface Card).
A Network Interface Card is a circuit board chip inserted/ soldered on the motherboard allowing your computer to connect to the internet. If you have worked with many earlier Desktop computers (even some today), you know that most cannot connect to a WiFi network, and that’s because they don’t have a wireless NIC. You are advised to purchase a USB Network Adapter that will act as your wireless interface connection in such a situation.
How to list network interfaces on Linux
You can use different ways to see all the available network interfaces on your system. You can use the GUI or the Command-line (CLI). In this post, we highly recommend using the Terminal (CLI) since the GUI settings app might not list specific interfaces.
1. The ifconfig command
This command has long been used to list and configure network interfaces on Linux. Unfortunately, this command is marked as ‘deprecated’ and does not come pre-installed in certain distributions like recent Debian and Kali Linux releases.
To list network interfaces using ifconfig, execute the command below.
Astra linux перезапуск сети
В состав диструбутива Astra Linux входит сетевая служба NetworkManager и графический инструмент настройки сетевых интерфейсов апплет NetworkManager, обеспечивающий графический пользовательский интерфейс для выполнения всех стандартных операций по настройке сети в режиме настольного компьютера.
При стандартной установке Astra Linux служба NetworkManager и соответствующий графический инструмент устанавливаются и запускаются автоматически, получая под своё управление все внешние сетевые интерфейсы.
Графический инструмент после установки доступен через меню «Пуск» — «Панель управления» — «Сеть» — «Сетевые соединения», или через иконку быстрого запуска на всплывающей линейке в нижней части экрана.
Документация по использованию NetworkManager находится в каталоге
Конфигурационные файлы NetworkManager находятся в каталоге
Инструмент командной строки nmcli для работы с NetworkManager
В составе пакета имеется инструмент командной строки nmcli для работы с NetworkManager.
Инструмент может работать с устройствами (devices, dev) или с соединениями (connection, con).
Примеры применения командного интерфейса к устройствам:
# устанавливаем IP-адрес для устройства eth0
nmcli device modify eth0 ipv4.address 192.168.32.97/24
# устанавливаем адрес шлюза для устройства eth0
nmcli device modify eth0 ipv4.gateway 192.168.32.1
# устанавливаем адрес DNS для устройства eth0
nmcli device modify eth0 ipv4.dns 192.168.32.1
# проверяем настройки устройства eth0
nmcli device show eth0
При установке ОС по умолчанию устанавливается сетевой интерфейс «Проводное соединение 1», настроенный на получение динамического адреса по протоколу DHCP.
Кроме «длинного» имени «Проводное соединение 1» можно использовать опции path (выбор соединений по номеру конфигурации в шине dBus) или apath (выбор активных соединений по номеру конфигурации в шине dBus), например:
nmcli con show path 3
nmcli con show apath 1
При этом типовой задачей при настройке серверов является задача переключения этого соединения на статический адрес.
Пример сценария настройки соединения (connection, сокращенно con), выполняющего эту задачу:
# Имя соединения, и устанавливаемые начальные параметры: адрес/маска (ip), адрес шлюза (gw), адреса DNS (dns, можно несколько адресов через пробел), шлюз для статического маршрута (gwroute)
con=»Проводное соединение 1″
ip=»10.0.2.254/24″
gw=»10.0.2.1″
dns=»10.0.2.254 8.8.8.8″
gwroute=»10.0.2.2″
# Проверяем наличие соединения
if nmcli con show «$con» > /dev/null ; then
echo «Настраиваем «$con» на работу со статическим адресом $ip gw $gw.»
# Задаем адрес и адрес шлюза
nmcli con mod «$con» ip4 $ip gw4 $gw
# Задаем адреса DNS
nmcli con mod «$con» ipv4.dns «$dns 8.8.8.8»
# Добавим статический маршрут
nmcli con mod «$con» +ipv4.routes «192.168.1.0/24 $gwroute»
# Отключаем DHCP, переводим в «ручной» режим настройки
nmcli con mod «$con» ipv4.method manual
echo «Применены следующие настройки:»
nmcli -p con show «$con» | grep ipv4
# Перезапускаем соединение для применения новых настроек. Лучше всегда делать перезапуск одной командой, чтобы не терять машину при работе через удалённое подключение:
nmcli con down «$con» ; nmcli con up «$con»
else
echo «Соединение «$con» не найдено, настройте адрес вручную.»
exit 1
fi
Полное описание командного интерфейса доступно в общей системе документации:
man nmcli
man nmcli-examples
man nm-online
Во избежание конфликтов со службой networking настроенная по умолчанию служба NetworkManager НЕ РАБОТАЕТ с сетевыми интерфейсами, перечисленными в файле
присутствует только интерфейс локальной петли (loopback).
Для того, чтобы NetworkManager прочитал изменения конфигурации (в том числе изменения списка интерфейсов, перечисленных в файле
), следует перезапустить службу NetworkManager:
sudo systemctl restart NetworkManager
При работе со службой NetworkManager можно использовать её псевдоним network-manager:
sudo systemctl restart network-manager
Для того, чтобы изменения настроек сетевого адаптера, сделанные через графический интерфейс, вступили в силу, следует перезапустить сетевой адаптер. При работе в графическом интерфейсе это можно следать просто нажав левой кнопкой мыши на апплет управления сетями и ещё раз нажав левой кнопкой мыши на имя сетевого адаптера в открывшемся списке.
Networking: Настройка сети из командной строки
Теоретически, службы NetworkManager и networking конфликтовать не должны, так как первая не работает с сетевыми интерфейсами, перечисленными в файле
, а вторая — работает только с интерфейсами, перечисленными в этом файле, но при переходе к использованию службы networking лучше отключить NetworkManager, для чего выполнить команду:
sudo systemctl —now mask NetworkManager
По желанию после удаления службы NetworkManager можно скрыть графическую оснастку NetworkManager (значок сети в панели задач).Для запрета запуска графической оснастки выполнить команду
sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart/nm-applet.desktop.disabled
Иконка будет скрыта в следующей сессии пользователя. Если нужно, чтобы оснастка была скрыта немедленно, перезапустить fly-dm:
sudo systemctl restart fly-dm
При перезапуске fly-dm пользовательская сессия будет перезапущена.
Традиционно, настройка сети TCP/IP из командной строки выполняется с использованием инструментов ifup и ifdown, входящих в пакет ifupdown, и предназначенных для высокоуровневого конфигурирования сети.
При этом можно выделить два типичных случая
1. Для систем, работающих в статичной сети (например, для серверов), следует сохранять как можно более простую конфигурацию;
2. Для систем, работающих с динамически меняющимися сетями и IP-адресами (например, для мобильных компьютеров) рекомендуется дополнительно использовать для настройки пакет resolvconf, упрощающий переключение конфигураций при смене сетевого адреса.
Пакеты resolvconf и NetworkManager могут конфликтовать, так как работают с одним файлом /etc/resolv.conf
Пакет ifupdown содержит три команды: команды ifup и ifdown, обеспечивающие настройки сетевых интерфейсов в соответствии с конфигурационным файлом
, и команда ifquery, проверяющая корректность конфигурационного файла
При этом список включенных в данный момент интерфейсов хранится в файле
Сценарий изменения настройки сетевого интерфейса (на примере интерфейса eth0):
1. Внести изменения в файл /etc/network/interfaces в секцию, относящуюся к интерфейсу eth0.
2. Проверить корректность файла:
3. Перезапустить интерфейс. Лучше всегда делать это одной командой, чтобы не потерять машину при работе через удалённое подключение:
sudo ifdown eth0; sudo ifup eth0
Не следует использовать низкоуровневые конфигурационные команды как, например, ifconfig(8) и ip(8) для переключения сетевых интерфейсов во включенное (up) состояние.
Типичной ошибкой при использовании команд ifdown/ifup является повторное назначение параметров интерфейса неотключенным и некорректно работающим сервисом NetworkManager,
что выглядит как игнорирование изменений, внесённых в файл /etc/network/interfaces.
Для проверки полного состояния сетевого интерфейса вместо устаревшей команды ifconfig следует использовать современную команду ip из пакета iproute2:
1. проверить все сетевые адреса, назначенные сетевому интерфейсу:
2. очистить все сетевые адреса, назначенные сетевому интерфейсу:
sudo ip address flush dev eth0