我们知道,GFWList的官方列表是经过加密的,使用时需要经过解密还原为对应的网址。因此,官方规则在许多场景下并不能直接使用,而是需要经过相应的转换。
如果想要在OpenWRT/LEDE等固件的路由器上,实现GFWList科学上网,那么dnsmasq就是一个很重要的工具。在安装dnsmasq-full版本后,还需要添加对应的GFWlist规则。
下面我们就来介绍下GFWList的dnsmasq规则转换过程。
一键脚本所需系统平台
本一键脚本可运行于基于Linux或BSD的系统,比如:
- Debian
- Ubuntu
- Cent OS
- OpenWrt
- LEDE
- Cygwin
- FreeBSD
- Mac OS X
一键脚本使用方法
本一键脚本可自动将最新的官方GFWList转换为三种形式的规则,按需选择:
- 带ipset规则的dnsmasq规则
- 不带ipset规则的dnsmasq规则
- 普通的GFWList域名列表
带ipset规则的dnsmasq规则:
如果你使用的是VPS服务器或OpenWRT/LEDE路由器,那么使用Putty连接后,依次运行如下命令:
1 2 3 | wget https://raw.githubusercontent.com/cokebar/gfwlist2dnsmasq/master/gfwlist2dnsmasq.sh chmod +x gfwlist2dnsmasq.sh sh gfwlist2dnsmasq.sh –s gfwlist –o /root/dnsmasq_gfwlist_ipset.conf |
转换开始的截图:
转换完成的截图:
转换后的部分规则类似这样,其中ipset名称为gfwlist,规则文件保存在/root目录下:
1 2 3 4 | server=/030buy.com/127.0.0.1#5353 ipset=/030buy.com/gfwlist server=/0rz.tw/127.0.0.1#5353 ipset=/0rz.tw/gfwlist |
不带ipset规则的dnsmasq规则:
1 2 3 | wget https://raw.githubusercontent.com/cokebar/gfwlist2dnsmasq/master/gfwlist2dnsmasq.sh chmod +x gfwlist2dnsmasq.sh sh gfwlist2dnsmasq.sh –o /root/dnsmasq_gfwlist.conf |
转换后的部分规则类似这样,规则文件保存在/root目录下:
1 2 | server=/030buy.com/127.0.0.1#5353 server=/0rz.tw/127.0.0.1#5353 |
普通的GFWList域名列表:
1 2 3 | wget https://raw.githubusercontent.com/cokebar/gfwlist2dnsmasq/master/gfwlist2dnsmasq.sh chmod +x gfwlist2dnsmasq.sh sh gfwlist2dnsmasq.sh –l –o /root/gfwlist_domain.txt |
转换后的部分列表类似这样,列表文件保存在/root目录下:
1 2 3 4 | 030buy.com 0rz.tw 1000giri.net 100ke.org |
其它说明
以上脚本转换生成的dnsmasq规则,默认dns为127.0.0.1:5353,如果需要修改,则在以上各命令的第三条中加入相关参数即可。
比如要将DNS修改为127.0.0.1:5300,那么在命令中加入: -d 127.0.0.1 -p 5300
修改后的第三条命令(带ipset规则):
1 | sh gfwlist2dnsmasq.sh –d 127.0.0.1 –p 5300 –s gfwlist –o /root/dnsmasq_gfwlist_ipset.conf |
修改后的第三条命令(不带ipset规则):
1 | sh gfwlist2dnsmasq.sh –d 127.0.0.1 –p 5300 –o /root/dnsmasq_gfwlist.conf |
dnsmasq规则使用方法
dnsmasq规则的生成,只是实现路由器科学上网中的一个步骤,后续步骤可以参考:
OpenWRT/LEDE路由器使用Shadowsocksr配合GFWList实现智能科学上网