断开连接后自动重新连接到wifi?

Tim*_*Tim 9 wifi ubuntu usb

在 Ubuntu 14.04 上,我使用 USB 无线适配器连接到无线网络。连接经常断开(我已经尝试解决问题,但我不知道为什么。那是另一个问题。请参阅dmesg | grep wlan 此处的输出)。

我的网络管理器有时可以自动重新连接,但有时不能。

所以当它断开连接时,我经常不得不跑

sudo dhclient -v wlan1
Run Code Online (Sandbox Code Playgroud)

重新连接。如果那不起作用,我会跑

sudo wpa_supplicant -B  -i wlan1 -c /etc/wpa_supplicant.conf
sudo dhclient -v wlan1
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我还将rt2800usb首先重新加载其驱动程序:

sudo modprobe -r rt2800usb
sudo modprobe rt2800usb
sudo wpa_supplicant -B  -i wlan1 -c /etc/wpa_supplicant.conf
sudo dhclient -v wlan1
Run Code Online (Sandbox Code Playgroud)

我们如何在每次断开连接时自动运行命令,即自动重新连接?

有一个问题,我的 USB 适配器的逻辑名称主要是,wlan1但有时是wlan0.

GAD*_*D3R 5

wlan1您可以获取from的状态/sys/class/net/wlan1/carrier,这是一个示例脚本,用于每 2 秒检查一次 wifi 接口的状态,然后重新连接(替换sleep 2为每秒检查一次连接n):

while true
     do
     i=$(cat /sys/class/net/wlan1/carrier)
if [ $i == 1 ]
then
       echo "connected"

else
       echo "reconnecting"
       killall wpa_supplicant
       modprobe -rv rt2800usb
       modprobe -v rt2800usb
       wpa_supplicant -i wlan1 -c/etc/wpa_supplicant.conf -B
       dhclient wlan1
       echo "reconnected successfully"
       fi
sleep 2
done
Run Code Online (Sandbox Code Playgroud)

测试脚本

运行此脚本,然后打开一个新终端并运行killall wpa_supplicant,您将再次重新连接。

  • 您的意思是“wpa_supplicant”吗? (2认同)