When I type:
systemctl restart networking.service
this error message show:
failed to restart networking.service: Unit networking.service not found
I use ubuntu server 20.04 LTS
- networking
- network-manager
Serg
7906 silver badges14 bronze badges
asked Jan 3, 2022 at 23:04
2
-
This answer from a few years back should do what you need 👍🏻
Jan 3, 2022 at 23:12
1 Answer
The correct command is
$ sudo systemctl restart systemd-networkd
The service is called systemd-networkd, not networking.
answered Jan 3, 2022 at 23:05
cocomaccocomac
2,5833 gold badges14 silver badges43 bronze badges
2
-
Please check again: Failed to restart network-manager.service: Unit network-manager.service not found.
Jan 4, 2022 at 2:04
-
@chili555 Fixed, this should work now
Jan 4, 2022 at 2:07
I add some a line dns-nameservers 8.8.8.8 in my /etc/network/interfaces.
I want to reload this config without reboot.
However, when I tried:
sudo service networking restart
I got a Unit networking.service not found error
sudo /etc/init.d/networking restart
I got /etc/init.d/networking: command not found
How can I fix this?
I use Ubuntu Server 18.04.2 LTS
asked Apr 10, 2019 at 21:04
Things have changed over time. Dependent on your installation, you want to check the service names with
systemctl list-unit-files | grep -i network
And, most likely in your case, it’s
systemctl restart NetworkManager
![]()
zx485
2,17011 gold badges16 silver badges23 bronze badges
answered Nov 15, 2019 at 17:43
![]()
7
Since version 15.04, Ubuntu comes with systemd as default instead of initd. systemd-networkd exactly
Use systemctl restart networking
![]()
answered Apr 10, 2019 at 21:06
![]()
Aroly7Aroly7
4092 silver badges9 bronze badges
1
I add some a line dns-nameservers 8.8.8.8 in my /etc/network/interfaces.
I want to reload this config without reboot.
However, when I tried:
sudo service networking restart
I got a Unit networking.service not found error
sudo /etc/init.d/networking restart
I got /etc/init.d/networking: command not found
How can I fix this?
I use Ubuntu Server 18.04.2 LTS
asked Apr 10, 2019 at 21:04
Things have changed over time. Dependent on your installation, you want to check the service names with
systemctl list-unit-files | grep -i network
And, most likely in your case, it’s
systemctl restart NetworkManager
![]()
zx485
2,17011 gold badges16 silver badges23 bronze badges
answered Nov 15, 2019 at 17:43
![]()
7
Since version 15.04, Ubuntu comes with systemd as default instead of initd. systemd-networkd exactly
Use systemctl restart networking
![]()
answered Apr 10, 2019 at 21:06
![]()
Aroly7Aroly7
4092 silver badges9 bronze badges
1
В дистрибутиве Debian Linux 9 очень странно работает сеть. Такое впечатление, что в него воткнули несколько несовместимых между собой программ конфигурации сети, и предложили пользователю самим разбираться как всю эту дичь настраивать.
Что нужно сделать, если перестала настраиваться сеть
Первым делом надо сказать, что если сеть не удается настроить, или если сеть в какой-то момент начинает вести себя странно, а проверенные команды не дают желаемого результата, то значит пришло время, как мнимум, отказаться от Network Manager и от wicd. Почему это необходимо сделать? Вот пример.
Работает демон wicd. Система рапортует, что интерфейс enp5s0 поднят (находится в состоянии UP):
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.0.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
Если потушить интерфейс:
# ip link set dev enp5s0 down
… и снова проверить статус интерфейса, то ничего не измениться:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.0.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
Если же отключить wicd, то вышеприведенные команды начнут работать правильно. Отключить работу wicd можно такими командами:
# systemctl stop wicd — остановка сервиса wicd
# systemctl disable wicd — отключение автостарта wicd при запуске
В стандартной поставке, обычно, wicd идет по-умолчанию, и обычно он начинает тупить когда в сети, к которой подключен компьютер, отрубается сервер шлюза. После восстановления работы шлюза, сеть на Debian 9 не восстановится, и если не предпринять никаких ухищрений, поднять ее будет невозможно: спасет только перезагрузка.
Далее в тексте предполагается, что Network Manager и wicd отключены.
Проблемы совместимости утилит настройки сети
Для конфигурирования сети ранее использовались такие системные утилиты как ifconfig, route, ifup, ifdown. Но с некоторых пор появилась утилита ip, которая может заменить все вышеперечисленные программы. И к сожалению, в Debian 9 эти утилиты не очень то дружат друг с другом и сетевой подсистемой ядра Linux. В чем это выражается? Например в том, что утилиты ifup и ifdown не могут управлять поднятием и отключением сетевых интерфейсов.
Вот, к примеру, есть компьютер с одной сетевой картой. Интерфейс enp5s0 на ней не поднят:
# ifconfig -a
enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500
inet 192.168.0.95 netmask 255.255.255.0 broadcast 0.0.0.0
ether 1c:6f:65:96:54:bc txqueuelen 1000 (Ethernet)
RX packets 246102 bytes 226683039 (216.1 MiB)
RX errors 0 dropped 528 overruns 0 frame 0
TX packets 126214 bytes 15161252 (14.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 9 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 3320 bytes 1187321 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3320 bytes 1187321 (1.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
И поднять его не получится:
# ifup enp5s0
RTNETLINK answers: File exists
ifup: failed to bring up enp5s0
И, кстати, если интерфейс поднят, потушить его тоже невозможно:
# ifdown enp5s0
ifdown: interface enp5s0 not configured
А если попробовать сделать то же самое, но через утилиту ip? Тогда все будет работать:
Проверка состояния интерфейса enp5s0 (видно, что интерфейс поднят):
# ip link show enp5s0
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
Отключение интерфейса:
# ip link set dev enp5s0 down
И снова проверка состяния (видно, что интерфейс потушен):
root@surfinux:/etc/network# ip link show enp5s0
2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
Проблемы в сетевом модуле systemd
Чтобы принять новые настройки сети, обычно необходимо перезапустить сетевой демон networking. В Debian 9 это можно сделать двумя путями: по-старинке через утилиту service, и в новом стиле через утилиту systemctl:
# service networking restart
или
# systemctl restart networking
Утилита service будет, на самом деле, вызывать методы управления сервисами systemd, как это делает утилита systemctl. Так что команды равноправны. Но все-таки лучше использовать более новый systemctl.
Однако, если сеть предприятия «мигнула», и на машине с Debian 9 сеть отвалилась, то поднять ее через действие restart модуля networking не получится. Совершенно неясно, как поднимается сетевой интерфейс и конфигурируется сеть во время загрузки Debian Linux 9, но ручная попытка перезапустить сетевой сервис будет оканчиваться ошибкой:
# systemctl restart networking
Job for networking.service failed because the control process exited with error code.
See «systemctl status networking.service» and «journalctl -xe» for details.
# systemctl status networking
● networking.service — Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2020-12-17 12:02:01 MSK; 9s ago
Docs: man:interfaces(5)
Process: 19390 ExecStart=/sbin/ifup -a —read-environment (code=exited, status=1/FAILURE)
Process: 19385 ExecStartPre=/bin/sh -c [ «$CONFIGURE_INTERFACES» != «no» ] && [ -n «$(ifquery —read-environment —
Main PID: 19390 (code=exited, status=1/FAILURE)
дек 17 12:02:01 surfinux systemd[1]: Starting Raise network interfaces…
дек 17 12:02:01 surfinux ifup[19390]: RTNETLINK answers: File exists
дек 17 12:02:01 surfinux ifup[19390]: ifup: failed to bring up enp5s0
дек 17 12:02:01 surfinux systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
дек 17 12:02:01 surfinux systemd[1]: Failed to start Raise network interfaces.
дек 17 12:02:01 surfinux systemd[1]: networking.service: Unit entered failed state.
дек 17 12:02:01 surfinux systemd[1]: networking.service: Failed with result ‘exit-code’.
И здесь видно, что для поднятия интерфейса, внутри модуля networking используется утилита ifup, которая, как было выяснено ранее, в некоторых условиях не работает. И если заглянуть в файл с кодом модуля /lib/systemd/system/networking.service , то можно увидеть следующие команды:
ExecStart=/sbin/ifup -a —read-environment
ExecStop=/sbin/ifdown -a —read-environment —exclude=lo
Тут и проблемный ifup, и ifdown. А если копнуть еще глубже, то и недокументированная опция —read-environment. Об этой опции известно немного, но предполагается, что это «хак», который делают майнтейнеры Debian, чтобы сделать поддержку сети. По сути, с этой опцией, утилиты ifup, и ifdown берут свои настройки из переменных окружения VERBOSE, CONFIGURE_INTERFACES и EXCLUDE_INTERFACES. Подробнее можно прочитать тут:
https://unix.stackexchange.com/questions/339189/undocumented-read-environment-in-ifup-ifdown-ifquery
В общем, по-хорошему, нужно заменить опции с командами ifup/ifdown на опции с командой ip. Команда старта ExecStart должна поднимать все сетевые интерфейсы в системе. Команда остановки ExecStop должна отключать все интерфейсы в системе, за исключением loopback.
Однако, как выяснилось на практике, команды ifup/ifdown делают несколько больше, чем просто поднятие/отключение сетевого интерфейса. Они выполняют какую-то работу по конфигурированию интерфейса и делают настройку таблицы маршрутизации. В то же время, команды серии ip link делают только поднятие/отключение интерфейса.
Следует учитывать, что формат опций настройки модуля systemd не допускает исполнение более одного бинарника. Поэтому, если необходимо для одного действия выполнить несколько команд, нужно либо вызывать шелл с опцией -c, после которой прописать несколько команд, либо разложить команды на разные этапы выполнения действия (Pre и Post).
ExecStart=/bin/ip link set group default up
ExecStop=/bin/ip link set group default down
ExecStopPost=/bin/ip link set dev lo up
Дописать…
Дополнительные данные:
# ifup enp5s0
# ip route
172.17.3.0/24 via 192.168.0.249 dev enp5s0
192.168.0.0/24 dev enp5s0 proto kernel scope link src 192.168.0.95
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.95
192.168.161.0/24 dev enp5s0 proto kernel scope link src 192.168.161.95
192.168.164.0/24 dev enp5s0 proto kernel scope link src 192.168.164.95
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.95/24 brd 192.168.1.255 scope global enp5s0
valid_lft forever preferred_lft forever
inet 192.168.0.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet 192.168.161.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet 192.168.164.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet6 fe80::1e6f:65ff:fe96:54bc/64 scope link
valid_lft forever preferred_lft forever
# ip link set dev enp5s0 up
# ip route
192.168.0.0/24 dev enp5s0 proto kernel scope link src 192.168.0.95
192.168.161.0/24 dev enp5s0 proto kernel scope link src 192.168.161.95
192.168.164.0/24 dev enp5s0 proto kernel scope link src 192.168.164.95
# ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.0.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet 192.168.161.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet 192.168.164.95/24 scope global enp5s0
valid_lft forever preferred_lft forever
inet6 fe80::1e6f:65ff:fe96:54bc/64 scope link
valid_lft forever preferred_lft forever