我们知道,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实现智能科学上网