https://www.adgk.net/archives/135/
安装AdGaurdHome
第一步当然是先安装AdGaurdHome啦!
根据官方教程可以很快速的安装好
无污染DNS实现原理
使用境外DNS虽然可以实现DNS不被污染但是缺点也很明显那就是解析速度慢而且解析境内使用CDN的域名时很可能会将IP解析至境外影响上网体验。根据官方文档中的说明,我们可以将DNS上游配置写在一个单独的文件当中,那么只需要将已知的境内域名单独使用境内DNS解析其余未知域名全部使用境外DNS进行解析就可以保证解析的结果不被污染。
具体实现
dnsmasq-china-list项目提供了很多属于中国大陆的域名列表。但是由于格式不兼容无法在AdGaurdHome中使用,我们需要对其进行转换。
使用sed
命令我们可以很方便将其转化为AdGaurdHome所支持的格式
sed -E "s#server=(\/.+\/)114\.114\.114\.114#[\1]${CHINADNS}#g"
具体脚本
#!/bin/bash
CHINADNS=223.5.5.5
LIST="$(dirname $0)/dnsrule.txt"
cat <<EOF > ${LIST}
tls://8.8.8.8
tls://8.8.4.4
EOF
curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf | sed -E "s#server=(\/.+\/)114\.114\.114\.114#[\1]${CHINADNS}#g" >> ${LIST}
将上面的内容保存为dnsrule.sh
文件赋予可执行权限并运行就会在脚本所在的目录生成一个dnsrule.txt
文件,然后在AdGaurdHome.yaml
文件内的upstream_dns_file:
后面填入dnsrule.txt
文件的绝对路径,保存后重启AdGaurdHome就可以了。
当然由于这个项目更新频繁需要经常更新上游文件,这点可以通过
contab
定时脚本解决
没有评论:
发表评论