如何重新启动 WiFi 连接?

wif*_*fan 89 network-manager wireless

我想我没有硬件问题。显然,有时 WiFi 连接只是断开连接。所以这不一定与这种情况相同,我可能不需要重新加载任何模块。

但是如何重新启动wlan0?我试过restart network-manager,但这似乎wlan0不理会。

Rad*_*anu 149

您只需要重新启动网络管理器

sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)

  • 在较新版本的 Ubuntu 上,使用 `sudo systemctl restart NetworkManager` 可能(取决于系统是否使用 systemd)更好。 (10认同)

Iac*_*hus 30

如果您正在编写脚本,这些不需要 root:

nmcli networking off 
nmcli networking on
Run Code Online (Sandbox Code Playgroud)

如需更多信息,请执行以下操作: man nmcli

编辑

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

nmcli radio wifi off
nmcli radio wifi on
Run Code Online (Sandbox Code Playgroud)

  • 好的!(+1) 只是为了使其更具体到 wifi 连接,可以使用:`nmcli radio wifi off`,然后是 `nmcli radio wifi on` (6认同)

小智 21

尝试这个:

sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
Run Code Online (Sandbox Code Playgroud)

  • 假设这些接口在`/etc/network/interfaces` 文件中定义。否则,您可能会收到臭名昭著的“未知接口”错误 (2认同)

Rol*_*olf 8

“重新加载驱动程序”

查找模块名称

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

sudo hwinfo --network
Run Code Online (Sandbox Code Playgroud)

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

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

重新加载模块

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

您可能很幸运,没有错误消息,在这种情况下,您可以立即重新加载它

$ sudo modprobe iwlwifi
Run Code Online (Sandbox Code Playgroud)

但很可能您会收到此失败消息:

$ sudo modprobe -r iwlwifi
modprobe: FATAL: Module iwlwifi is in use.
Run Code Online (Sandbox Code Playgroud)

所以我们去寻找其他模块使用iwlwifi

$ lsmod |grep iwlwifi
iwlwifi               241664  1 iwldvm
cfg80211              765952  4 iwldvm,iwlwifi,mac80211,rtl8187
Run Code Online (Sandbox Code Playgroud)

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

$ sudo modprobe -r iwldvm
Run Code Online (Sandbox Code Playgroud)

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

$ sudo modprobe -r iwlwifi
Run Code Online (Sandbox Code Playgroud)

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

$ sudo modprobe iwlwifi
$ sudo modprobe iwldvm
Run Code Online (Sandbox Code Playgroud)

完毕!

这是唯一对我有用的程序,用于重置我使用iwconfig.

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


TSJ*_*117 7

您可以尝试关闭设备的电源。假设您无法/不愿意物理断开设备,您应该运行(以 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. 如果您不知道您使用的是什么 init 系统,请尝试这两个命令,看看什么是有效的。