如何重启WiFi连接?


64

我认为我在硬件方面没有问题。有时,WiFi连接只是断开连接。因此,这与本例不一定相同,我可能不需要重新加载任何模块。

但是如何重新启动wlan0?我试过了restart network-manager,但这似乎没有问题wlan0

Answers:


122

您只需要重新启动Network Manager即可

sudo service network-manager restart

5
在较新版本的Ubuntu上,最好使用(取决于系统是否使用systemd)sudo systemctl restart NetworkManager
TSJNachos117 '16

1
适用于在ThinkPad t420上运行16.04的我。是否有任何需要我们记录在案的理由?
mbigras

哈哈,是的,但是在禁用网络的情况下,在Ubuntu GNOME 17.04上sudo不起作用。相当多的收获22.
grofte

这对我不起作用(Dell Inspiron 9400)
Hibou57 '17

service network-manager restart将其添加 到桌面文件或快捷方式即可正常工作(无论如何都要求通过)

15

尝试这个:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

1
假设这些接口在/etc/network/interfaces文件中定义。否则,您可能会收到臭名昭著的Unknown interface错误
比如

14

这些不需要root,以防您编写脚本:

nmcli networking off 
nmcli networking on

要做更多: man nmcli

编辑

正如这些人在评论中所说的那样,仅适用于WI-FI:

nmcli radio wifi off
nmcli radio wifi on

4
真好!(+1)只是为了使其更具体地适用于wifi连接,可以使用:nmcli radio wifi off其次是nmcli radio wifi on
n1k31t4

1
@ n1k31t4您介意编辑此答案吗?这正是OP所需要的,可能还有很多其他人在看这篇文章。
突袭

6

您可以尝试切断设备的电源。假设你无法/不愿意物理断开的设备,应运行(作为root): iwconfig wlan0 txpower off。然后,我将等待10-15秒钟,以确保引起问题的任何硬件问题均已停止,然后:iwconfig wlan0 txpower auto

或者,您可以简单地运行rfkill并阻止/取消阻止您的设备。为此,请运行rfkill block wifi,然后按rfkill unblock wifi。第二个选项应该更快,因为您只需在命令之间等待2-3秒,而不是10-15秒。实际上,尽管我怀疑这取决于您的WiFi硬件,但在我的计算机上根本不需要等待。也可以以普通用户身份执行此选项,而无需root用户。

您也可以重新启动NetworkManager。如果您将systemctl用作您的初始化系统(较新版本的Ubuntu),则可以使用systemctl restart NetworkManager。否则,您可以使用sudo initctl restart network-manager。如果您不知道使用什么初始化系统,请尝试两个命令并查看有效的方法。


这不是软件问题,而是硬件问题,因为在Ubuntu16.04之前运行良好,并且多个用户使用相同的Ubuntu版本遭受相同的困扰。
Hibou57

2

基于先前链接建议以及先前链接的某些混合和匹配,创建了一个脚本。这适用于在Mint Linux 17.3下运行的我。

下面的文件,并没有需要root权限。它也只是重启的wifi 只有当它已经是了。现在,我只需要将此脚本添加到cron作业中,即可每隔15分钟左右检查一次wifi连接。

#!/bin/bash

wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr | wc -l)
if [ $wlan -eq 0 ]; then
nmcli nm wifi on
else
echo "interface is up"
fi

+1可以使流程自动化。-1,因为此脚本不会重新启动WiFi连接,只有在它已经关闭的情况下才会启动它。如果OP的问题完全断开了连接,这可以解决问题。但是,如果连接仍使用有效IP进行连接,但已停止传输数据,则此脚本将不起作用。-1(表示具有echo自动(经修订)脚本)。
Jim

2

“重新加载驱动程序”

查找模块名称

让我们找到用于无线连接的内核模块的名称:

sudo hwinfo --network

hwinfo如果没有,请安装软件包。)

在“驱动程序”行中查找模块名称。

重新加载模块

现在卸载,然后重新加载模块。例如,我的模块名称是iwlwifi

您可能会很幸运,但是很可能会收到以下失败消息:

$ sudo modprobe -r iwlwifi
modprobe: FATAL: Module iwlwifi is in use.

因此,我们使用iwlwifi以下命令查找其他模块:

$ lsmod |grep iwlwifi
iwlwifi               241664  1 iwldvm
cfg80211              765952  4 iwldvm,iwlwifi,mac80211,rtl8187

左侧是模块名称,右侧是使用它的其他模块。因此,让我们iwldvm先尝试禁用:

$ sudo modprobe -r iwldvm

如果可行,那么我们现在可以成功禁用 iwlwifi

$ sudo modprobe -r iwlwifi

现在,以相反的顺序重新启用两个模块:

$ sudo modprobe iwlwifi
$ sudo modprobe iwldvm

做完了!

这是唯一适用于我重置使用的低lelel设置(片段,速率)的过程iwconfig

它的有效作用是“重新加载驱动程序”。


0

使用“ systemctl restart NetworkManager”的解决方法对我在Debian Buster和Ubuntu 19.04下具有Broadcom和Atheros WiFi的两个不同笔记本上都有效,其中每四分之一左右的简历都会出现“ wifi不会在恢复时唤醒”的问题(=我通常先尝试创建一个桌面启动器来手动调用wifi重置,该方法可以正常工作,并且需要输入密码-但是后来我发现有人将重置诅咒放到运行系统的地方的一些注意事项恢复后的脚本。即,/lib/systemd/system-sleep/ 看起来是放置脚本的好地方。而且,脚本应该更好地测试某些条件(通过cmdline参数获得),以了解是时候重置NetworkManager。为链接而不是剪切和粘贴表示歉意-我没有征求该作者的许可,他可能也很高兴为他在YouTube上所做的贡献(直截了当,并且叙述清楚)。

除此之外,我还注意到了一些非常简单直接的解决方案,可解决来自Ubuntu 16.04的原始问题:wifi.scan-rand-mac-address=noNetworkManager.conf甚至just apt-get update && apt-get upgrade。这些是针对16.04中特定错误的最佳解决方案。它们可能无法解决此类其他杂项问题,可以通过在挂起的每个恢复上重载(但相当迅速)重新启动NetworkManager来解决。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.