问题描述
我想我没有硬件问题。有时,WiFi连接显然会断开连接。所以这不一定是the same as this case,我可能不需要重新加载任何模块。
但是如何重新启动wlan0
?我尝试了restart network-manager
,但这似乎只留下了wlan0
。
最佳解决方法
您只需要重新启动Network Manager:
sudo service network-manager restart
次佳解决方法
试试这个:
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
第三种解决方法
如果你是脚本,这些不需要root:
nmcli networking off
nmcli networking on
更多信息:man nmcli
编辑:
正如这些家伙在评论中所说,仅适用于WI-FI:
nmcli radio wifi off
nmcli radio wifi on
第四种方法
您可以尝试杀死设备的电源。假设您无法/不愿意物理断开设备,您应该(以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作为init系统(与较新版本的Ubuntu一样),则可以使用systemctl restart NetworkManager
。否则,您可以使用sudo initctl restart network-manager
。如果您不知道您使用的是哪个init系统,请尝试这两个命令并查看哪些有效。
第五种方法
基于先前的链接建议创建了一个脚本,并且有一些混合和放大。先前链接的匹配。这适用于我在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