关于我
 

xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

linux wifi重连


各种折腾·linuxscript

本文最后编辑于超过3720天以前,部分内容可能已经失效

最近买了个tplink的wifi extender,但质量垃圾,网络连接非常不稳定,情况差的话15分钟就断线了,最好也就2小时就没有网络连接了。windows还不错,能自动重连,可是linux下用networkmanager就不会自动重连了,然后就不能上网了,必须断开再连。

写个小脚本,用cron运行,每分钟检查一下网络,ping一下wifi extender,如果不通就断开重连。

#!/bin/bash

ssid=xxxx
password=********
gate=tplinkextender.net

if [ -n "`ping -c 1 $gate 2>&1 | grep 'unknown host'`" ] || [ -n "`ping -c 1 $gate 2>&1 | grep 'Host Unreachable'`" ];then
  nmcli dev disconnect wlan0
  nmcli dev wifi connect $ssid password $password > /dev/null
fi

因为dbus不允许cron控制网络,所以虽然脚本可以用普通用户权限运行,但是用cron就只能用root运行,而root又不能读取wifi的密码,所以必须在脚本里写明密码。

更新:
这个方法会导致networkmanager记录下很多相同ssid的连接,因为nmcli dev wifi connect $ssid会新建这个ssid的连接,如果有同名的存在就在后面加上数字1,2,3,4.. 所以更新脚本

#!/bin/bash

gate=tplinkextender.net

if [ -n "`ping -c 1 $gate 2>&1 | grep 'unknown host'`" ] || [ -n "`ping -c 1 $gate 2>&1 | grep 'Host Unreachable'`" ];then
  nmcli radio wifi off
  nmcli radio wifi on
fi

先关闭wifi再打开,让nm自己搜索wifi信号并连接上设置为自动连接的ssid,这样也不用特别指明ssid和密码了。

本文 "linux wifi重连" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2014
转载注明引用来源 https://blog.xjpvictor.info/2014/09/linux-wifi-reconnect/


推广:本博客使用 Linode VPS,口碑好,信誉佳,快速稳定,性价比高

打赏我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r

本博客是言论不自由博客,评论只接受询问及赞同,不同观点请出门左转微博/发表于自己的博客。谢谢合作!

评论意味着你 同意 上传部分私人数据,包括邮箱和 IP, 这些数据不会被分享给第三方,不会用于商业用途或再推广用途。

更多相似文章