DIY: 基于OpenWRT和小米路由器的透明代理之后续(自动更新gfwlist)

1410阅读 1评论2018-09-29 chou_o_ning
分类:IT业界

在上篇中,由于**的list是会经常变动的,因此我写了个脚本放在 **list-autoupdate/blob/master/**list_autoupdate.sh 同时将该脚本设置为OpenWRT crontab entry,每天进行一次更新,这样就解决了这个问题。

点击(此处)折叠或打开

  1. #!/bin/sh
  2. # Name: **list_autoupdate.sh
  3. # Desription: A script is executed from a crontab entry every day to update dnsmasq rules.
  4. # Version: 2018.09.29
  5. # Author: chou.o.ning@gmail.com
  6. # Website: **list-autoupdate
  7. # wget output file
  8. FILE1=dnsmasq_**list_ipset_org.conf
  9. FILE2=dnsmasq_**list_ipset_add_by_ning.conf
  10. FILE3=dnsmasq_**list_ipset.conf
  11. # wget log file
  12. LOGFILE=wget.log
  13. # wget download url
  14. URL1=**list2dnsmasq/dnsmasq_**list_ipset.conf
  15. URL2=web/releases/download/latest/dnsmasq_**list_ipset_add_by_ning.conf
  16. wget $URL1 --no-check-certificate -O $FILE1 -o $LOGFILE || exit 1
  17. wget $URL2 --no-check-certificate -O $FILE2 -a $LOGFILE || exit 1
  18. cat $FILE1 $FILE2 > $FILE3
  19. cp $FILE3 /etc/$FILE3
  20. /etc/init.d/dnsmasq restart

这个脚本中会从两个地方获取**list,一个是
**list2dnsmasq/dnsmasq_**list_ipset.conf 由Cokebar Chi维护
web/releases/download/latest/dnsmasq_**list_ipset_add_by_ning.conf 由本人维护
然后拼接起来拷贝到/etc/dnsmasq_**list_ipset.conf,dnsmasq重启服务即可。

注意事项:
1. OpenWRT需要安装wget组件
2. 需要将**list_autoupdate.sh上传到/root目录下(可以安装openssh-sftp-server,使用sftp命令完成上载)
3. 如果原先crontab为空,则OpenWRT的crond是不启动的,需要手动启动root@OpenWrt:~# /etc/init.d/cron start
4. crontab entry添加命令如下:
root@OpenWrt:~# crontab -e
# update **list at 4:30am every day
30 4 * * * sh /root/**list_autoupdate.sh
5. OpenWRT需要设置正确的时区,否则更新的时间会有8个小时的时差,可以用logread看日志crond是否在工作
上一篇:DIY: 基于OpenWRT和小米路由器的透明代理
下一篇:LAN和WAN同一网段导致OpenWRT无法上网

文章评论