如何重启网络服务?

我试着使用。
sudo service networking restart

并且

sudo /etc/init.d/network restart

但是它们都会导致窗口管理器崩溃,我无法再使用键盘输入到X中。
当我使用/etc/init.d/方法时,它会抱怨说我应该使用service工具。
e.g. service networking restart

但它还是会崩溃。
有没有图形界面的方法来重新启动网络?

请注意,如果您拔下并重新插入键盘 - 并且它是可热插拔的(即USB),则您可能会使键盘重新启动。 - user unknown
我在Ubuntu 13.03的Gnome 3上也遇到了类似的问题。屏幕失真,顶部栏消失,快捷键无效。由于没有显示菜单/活动,我无法操作系统。幸运的是,控制台已经打开了。因此可以输入重新启动命令。 - kuldeep.kamboj
2如果你正在寻找图形界面的方法,只需打开Dash,输入"网络"并选择它。现在按下"开/关"按钮关闭,然后再次点击以打开。你的网络已经重新启动了。 - αғsнιη
18个回答

桌面电脑

试试看

sudo service network-manager restart

或者在最新的Ubuntu版本上:
sudo systemctl restart systemd-networkd

而不是。

Ubuntu使用网络管理器(network-manager)而不是传统的Linux网络模型。所以你应该重启network-manager服务,而不是network服务。或者使用ifup/down命令

对于服务器

请查看这个答案


9嗯,很奇怪的是,只重启网络就会导致系统崩溃。你也遇到过这种情况吗?还是只有我一个人遇到? - waspinator
5@waspinator - 我也有同样的经历。 (FYI.) - Josh M.
1自动完成给出的是networking,然而正确的命令是network-manager - Abdennour TOUMI
2我希望我最初就尝试了Jorge的答案。 - Jonathan
11截至18.04.2,答案是:systemctl restart systemd-networkd - Ejoso
在我的桌面系统上,这个答案给了我一个“无法重新启动network-manager.service:找不到network-manager.service单元。”我发现@dagrha的答案似乎有效。 - user643722

针对服务器

在桌面计算机上重新启动网络会导致 dbus 和一堆服务停止并且无法再次启动,通常会导致整个系统无法使用。

由于 Ubuntu 使用基于事件的网络启动,简单地撤消和重做是不可能的,因此重新启动并不明智。相反,推荐的方法是在实际要重新配置的接口上使用 ifdown 和 ifup 命令:

sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

即使使用了 --force,我仍然遇到了 ifup: failed to open lockfile /run/network/.ifstate.lock: Permission denied 的问题。 - Dee
1@Jorge Castro:这种行为会被修复吗,还是它本身就是有问题的设计? - waspinator
3@waspinator 这个错误已经在今年三月份被标记为已修复:https://bugs.launchpad.net/ubuntu/+source/dbus/+bug/1072518 - Jorge Castro
4这里的exclude=lo是什么目的? - Jeff Atwood
4@JeffAtwood Loopback 用于 X、dbus 等。禁用它会导致...问题。 - SomeoneSomewhereSupportsMonica
3在Ubuntu Server 16.04.1上进行过工作。看起来Ubuntu Server没有包含网络管理器,所以http://askubuntu.com/a/230751/13756不能使用。 - Derek Mahar
1在Ubuntu Server 14.04中,ifdown --exclude=lo -a && ifup --exclude=lo -a 命令无效。而 ifconfig eth0 down && ifconfig eth0 up 命令有效(https://askubuntu.com/a/230804/134723)。 - Eduardo Lucio
因此,在我的VPS上运行/etc/init.d/iptables restart使主机在重启后没有IP地址,这实际上救了我的命。这解决了我的问题。 - van abel

你可以试试看
ifconfig eth0 down && ifconfig eth0 up

重新启动网络,你可以通过命令行输入“(或者你的网络接口)sudo重启网络”。

2据我所知,这不会根据/etc/network/interfaces更新界面的配置...这可能是你想要的。 - moritz
1在使用sudo命令时:sudo ifconfig eth0 down && sudo ifconfig eth0 up。否则,如果你是通过SSH连接的话,你将需要重新启动机器。 - tarkeshwar
尝试了ifup/ifdown和reg服务网络调用之后,这最终对我起作用了。 - Jon B
我认为这个答案比被接受的答案更好,因为ifup不能正确处理绑定接口,而ifconfig可以。 - gilad905

ubuntu命令行界面:要重新启动网络服务,可以使用以下命令:

sudo /etc/init.d/networking restart

或者

ifdown eth0
ifup eth0

3这在旧内核上曾经起作用。现在似乎确实不起作用了。最好使用 ifconfig eth0 down & ifconfig eth0 up - josircg
1连接到远程机器时,请注意不要使用此命令。 - Nikolay Kostov

对于Ubuntu Server 18.04,这样做有效:

sudo systemctl restart systemd-networkd

4对于新的LTS 20.04版本,上述命令有效,谢谢! - LandiLeite
我确认!这在20.04上有效!谢谢! - Mohammed Noureldin
为什么每年都要改名字呢,唉。那个在20.04上运行。 - Moritz Friedrich

这些天重新启动网络服务的最直接方式是使用systemd控制,即命令行systemd控制实用程序systemctl。此命令将重新启动NetworkManager:
sudo systemctl restart NetworkManager.service

更多信息可以在这里找到。


2在16.04服务器上尝试执行命令"systemctl restart networking.service"。 - cloudsurfin
不需要末尾的“.service”部分。 - Gringo Suave

service network-manager restart无法工作:

stop: Unknown job network-manager
start: Unknown job network-manager

唯一有效的事情是:
ifconfig eth0 down
ifconfig eth0 up

sudo service network-manager restart

不:

sudo service networking restart

不适用于Ubuntu服务器14.04版。仅限:
sudo ifdown eth0:0
sudo ifup eth0:0

可以正常工作。将eth0:0更改为您的接口。


尝试使用指示器(顶部菜单栏)来禁用然后重新启用网络连接。


这是一种在16.04版本上始终有效的解决方案。根据我的经验,Ubuntu 16.04在从休眠状态返回后重新启动Wi-Fi存在问题。 - danijelc