前两个月OpenWrt一直使用ChinaDNS+ShadowSocks的方式按IP切换代理,但是由于长城宽带非常蛋疼代理时常上不去,导致平时可以正常访问的一些网站也无法访问,得不偿失。于是趁这周换了移动光纤,为了避免发生之前的情况,也把代理方式换成了按GFWlist得域名切换。
必要软件
首先是在OpenWrt下装上一堆必要软件:
- ipset
- iptables-mod-nat-extra
- libopenssl
- dnsmasq-full
- shadowsocks-libev
其中前三个正常安装即可,dnsmasq-full
需要先卸载预装的dnsmasq
再安装。
shadowsocks-libev
可以在sourceforge里找到。如果无法访问也可以下载我备份在服务器上的较老版本(注意软件所适配的架构):
wget https://www.shintaku.cc/files/shadowsocks-libev_2.4.8-3_ar71xx.ipk
下载完成后使用opkg install
命令直接安装即可。
配置ShadowSocks
编辑/etc/shadowsocks.json
文件:
1 | { |
修改/etc/init.d/shadowsocks
成如下(就是把关于ss-local
的注释掉再把ss-redir
的解注释):
1 |
|
之后启动ShadowSocks并设置开机自启:
/etc/init.d/shadowsocks start
/etc/init.d/shadowsocks enable
配置dnsmasq
新建目录/etc/dnsmasq.d
,并在其中放入dnsmasq_list.conf
文件,这个文件就是根据GFWlist生成的走代理的域名列表,生成方法已经有大神放在了GitHub上,可根据自己的情况进行修改。若是懒得生成,我在服务器上也会每日更新dnsmasq_list.conf,里面用的DNS是在这台服务器上搭的dnsmasq,ipset表叫做gfwlist
。
建议使用自己VPS上的DNS,具体就是在服务器装上dnsmasq,编辑/etc/dnsmasq.conf
加入:
1 | port=5353 |
保存后运行dnsmasq并设置开机启动就可以间接使用Google Public DNS了。
然后编辑路由器上的/etc/dnsmasq.conf
,在全篇注释后面加一句:
1 | conf-dir=/etc/dnsmasq.d |
最后自定义防火墙规则(可在LuCI里直接添加):
1 | ipset -N gfwlist iphash |
重启dnsmasq就算完成了:
/etc/init.d/dnsmasq restart
-
本文作者:
Shintaku
本文链接:
https://www.shintaku.xyz/posts/gfwlist/
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shintaku's Blog 。