美文网首页树莓派
树莓派第二弹:自动重连WiFi

树莓派第二弹:自动重连WiFi

作者: 寂寞的原子 | 来源:发表于2016-09-21 23:06 被阅读195次

本来想做科学上网的,结果难度太大,牵连甚广,于是先往后放放。

自从用了树莓派连WiFi,搭建私人局域网以后,网络比之前稳定了很多,使用自己的路由器可以放心地在内网传输数据,路由接硬盘实现多终端看片也是非常爽的。以后将用这一套装备实现私人云存储,想想也是蛮有逼格的。

然而用了一段时间后,偶尔会出现连不上外网的情况。SSH到树莓派,ifconfig发现WiFi连接断了,没有IP,手动重启:

$ sudo ifdown wlan0
$ sudo ifup wlan0

然后就恢复了。

Google了一下,发现问题出在树莓派断网之后不会自动重连。

网上找到了以下几种解决方案,顺便补充了一下相关知识:

  1. 最粗暴的方法:每隔5s向www.google.com发一个ping,如果ping失败了,则重启网络或者重启系统。
    看到这个方法我是崩溃的,居然还真有人用……

  2. 比较粗暴的方法:将/etc/wpa_supplicant/ifupdown.sh复制到/etc/ifplugd/action.d
    大概原理就是,只要网络发生变化(包括eth0连接或中断),就执行ifupdown.sh脚本,进行WiFi重连。据说这个方法可行,但是似乎也做了很多不必要的事情,好在一般eth0不会频繁变化,问题也不大。

  3. 有一点点粗暴的方法:https://github.com/dweeber/WiFi_Check
    这个方法是每隔5分钟,通过ifconfig检查一下wlan0的IP,如果找不到IP则说明网络断了,进行WiFi重连。
    嗯,最后果断选用这个:

    $ chmod +x WiFi_Check
    $ sudo vim /etc/crontab
    

    加入

    */5 * * * * root /absolute/path/to/WiFi_Check
    

这里使用系统级的/etc/crontab,并以root用户执行脚本,注意crontab中需要配置正确的PATH,因为脚本很多命令都是不指定完整路径的。系统级的crontab大概是每分钟读一次,因此修改后不需重启系统。

相关文章

网友评论

本文标题:树莓派第二弹:自动重连WiFi

本文链接:https://www.haomeiwen.com/subject/vvoaettx.html