02
6 月
2020
openwr热插拔脚本-wan变化触发
最近遇到了一些小问题,我的tp703n(已经刷了openwrt)在单位usb连接手机自动共享网络到wifi。这种功能确实很好用,既能给手机充电也能直接共享网络(非手机热点,热点多设备非常不稳定)。
但是在用某酸酸插件时,会出现当我拔下手机出去有事一段时间后,回来该插件就会出问题,需要手动重启插件解决。这个体验太差了,所以想到直接写个简单热插拔的脚本监听wan接口,当wan接口发生变化时,就重启该插件。
这个思路源自openwrt的著名插件ddns的设计,ddns应该是全世界最出名最常用的插件了,非常好用。ddns,主要用于将域名动态绑定到路由器的ip上。该插件有个智能功能,就是监听wan接口事件,一旦出现断线重启,就会重启插件,实现更新ip到dns的功能。
具体实操很简单。
#在/etc/hotplug.d/iface目录新建一个脚本99-ssr
vi /etc/hotplug.d/iface/99-ssr
#写入以下内容即可
#!/bin/bash
if [ $ACTION=ifup -a $INTERFACE=wan ]; then
/etc/init.d/shadowsocksr restart
fi
解释下/etc/hotplug.d/iface 这个目录是openwrt监听wan或者lan接口的脚本目录,而且目录里脚本的执行顺序按照数字的顺序来的。所以上面99开头的脚本就是希望最后时间里去执行该脚本。
至于脚本内容那就很简单了,就是对于wan网络接口出现up上线的时候,执行目标插件的重启。