使用dnsmasq基于大陆域名白名单分流解析域名
20210617更新:RouterOS使用DNS转发功能实现域名分流解析
20210127更新:使用overture替换dnsmasq做域名分流解析
有朋友问我怎么用dnsmasq做分流解析,其实挺简单,下面介绍一下。
以下以debian系linux为例,已在路由器做ip地址分流,参考routeros配置vpn分流大陆ip
1,安装dnsmasq
apt update
apt install dnsmasq
2,配置dnsmasq,默认使用8.8.8.8和8.8.4.4解析
vi /etc/dnsmasq.conf
粘贴下面三行到文件末尾
no-resolv
server=8.8.8.8
server=8.8.4.4
3,配置dnsmasq的解析白名单
这里使用了felixonmars/dnsmasq-china-list的大陆域名白名单
这个列表使用了114.114.114.114的dns服务器,这里建议使用运营商给你的dns服务器,一是解析会快一点,二是cdn识别会更准确
这里假设拨号获得的dns服务器是223.5.5.5,可以使用下面命令来生成使用运营商dns服务器的域名列表
curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf|sed 's/114.114.114.114/223.5.5.5/g' >/etc/dnsmasq.d/accelerated-domains.china.223.5.5.5.conf
如果需要使用大陆dns服务器解析apple或者google的域名,可以使用下面命令生成对应列表,这里我不推荐。
curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf|sed 's/114.114.114.114/223.5.5.5/g' >/etc/dnsmasq.d/apple.china.223.5.5.5.conf
curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/google.china.conf|sed 's/114.114.114.114/223.5.5.5/g' >/etc/dnsmasq.d/google.china.223.5.5.5.conf
4,重启dnsmasq服务使配置生效
service dnsmasq restart
5,测试dns分流解析
首先使用大陆dns服务器解析google.com,多次测试得到的ip地址并不是google的ip,可以用ipip.net来查询ip所属
dig google.com @223.5.5.5
然后使用dnsmasq解析google.com,多次测试可以发现ip地址是google的
dig google.com @127.0.0.1
6,自己添加域名到白名单
别人制作的域名列表中如果不包含自己需要的域名,可以向列表追加
echo 'server=/你需要的域名/223.5.5.5' >>/etc/dnsmasq.d/accelerated-domains.china.223.5.5.5.conf