本文章内容仅供学习交流禁止用于违反法律规定的用途

安装AdGaurdHome

自行搜索,本站提供部署教程

实现原理

使用境外DNS虽然可以实现DNS不被污染,但是缺点也非常明显,非常慢、容易把国内站点解析到海外节点上面去、对CDN不友好。根据[/example.local/]94.140.14.140 – 您可以为特定域名指定上游 DNS 服务器,和官方文档我们可以把上游DNS写到一个文件里面去,国内域名走国内的DNS,其余的走海外DNS。

实现方法

dnsmasq-china-list提供了很多属于中国大陆的域名列表,但是由于格式不一样所以无法直接在AdGaurdHome中使用。可以通过sed命令对列表进行转换

sed -E "s#server=(\/.+\/)114\.114\.114\.114#[\1]223.5.5.5#g"

具体脚本

!/bin/bash
cd /www/wwwroot/(这里填站点目录)/chinalist
rm -f i*.txt
wget -O i1.txt https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf
sed -E "s#server=(\/.+\/)114\.114\.114\.114#[\1]223.5.5.5#g" i1.txt >> i2.txt rm -f china.txt cat title.txt i2.txt > china.txt
systemctl restart AdGuardHome

title.txt文件内容

tls://8.8.4.4
tls://2001:4860:4860::8844
[/baidu.com/]223.5.5.5

注意

  • 脚本中的title.txt为自定义文件,内容如上所示
  • [/baidu.com/]223.5.5.5这个为自定义的域名,因为这个列表里面不可能包含所有属于中国大陆的域名
  • tls://8.8.4.4 和 tls://2001:4860:4860::8844 为不属于列表里面的域名的上游DNS
  • chinalist为新建的文件夹,名称可以自定义,脚本里面的要记得修改

使用方法

把脚本复制到宝塔面板的计划任务那里去就可以了任务类型选shell脚本,名称和时间自己定,脚本放到脚本内容,全部复制进去,然后保存就好啦~但是一定要确保路径和对应的文件夹、文件已经建立好(需要建立一个文件夹(chinalist)一个文件(title.txt))