标题:使用AdGaurdHome搭建无污染DNS
作者:
日期:2021-08-24 22:34:15
内容:

安装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定时脚本解决


返回列表 网站首页