openwrt定时切换网络

背景

由于各大高校在晚上11点左右都会断网,之前用的不断网的账号,后来不行了,可以用实验室的网,用vpn或者ss进行代理就可以在晚上用网了。为了实现在不同时段使用不同网络,需要写两个小小的脚本

实现

  1. 添加定时任务
    set crontab -e

    添加

    0 23 * * * /root/sd/scripts/start_ss.sh
    31 6 * * * /root/sd/scripts/stop_ss.sh

    注意地址要用绝对地址

  2. 然后设置网络,添加一个dhcp client 接口,这里取名为wan1

add wan1

之前连接校园网(netkeeper)的是接口wan,所以要做的就是白天用wan连接网络;晚上用wan1,并且配合vpn或者ss连接网络

  1. 设置ss或VPN,这里用的ss

ss
  1. 然后编辑start_ss.shstop_ss.sh
    start_ss.sh:

    /sbin/ifdown wan
    /sbin/ifup wan1
    sed -i "s/enabled '1'/enabled '0'/g" /etc/config/shadowsocks
    /etc/init.d/ss-redir.sh restart >/dev/null 2>&1 &

    stop_ss.sh:

    /sbin/ifdown wan1
    sed -i "s/enabled '0'/enabled '1'/g" /etc/config/shadowsocks
    /etc/init.d/ss-redir.sh restart >/dev/null 2>&1 &
    /sbin/ifup wan

    至于这两句是怎么来的?

    sed -i "s/enabled '0'/enabled '1'/g" /etc/config/shadowsocks
    /etc/init.d/ss-redir.sh restart >/dev/null 2>&1 &

    因为要知道shadowsocks插件点击提交后都做了哪些事情,需要看插件的代码
    /usr/lib/lua/luci/controller/下有shadowsocks文件,里面指定了_cbi(shadowsocks),所以在/usr/lib/lua/luci/model/cbi/下也能找到shaodowsocks.lua,这个脚本置顶这个配置下面页面的具体情况,包括配置信息(配置文件为/etc/config/shadowsock),以及在最后有

    local apply = luci.http.formvalue("cbi.apply")
    if apply then
         os.execute("/etc/init.d/ss-redir.sh restart >/dev/null 2>&1 &")
    end

    及点击提交按钮后做的事情,即生效ss-redir配置,所以有了以上的脚本

参考文章

开发OpenWrt路由器上LuCI的模块

评论 在此处输入想要评论的文本。

Copied title and URL