上一篇文章我聊了聊国内现有的一些公共 DNS,那今天我就来聊聊我自己使用的 DNS 方案。
公共 DNS 并不能满足现有需求
我相信大部分看这篇文章的人都是因为现有的公共 DNS 并不能满足需求,大概率是因为很多国内的 DNS 并不能完全正确的解析域名,因此在兼顾准确度与速度的情况下我们需要用到分流。
我的分流 DNS 解决方案
我使用的是 AdGuardHome 外加分流规则脚本
项目地址:https://github.com/felixonmars/dnsmasq-china-list
在 Global DNS 上我使用了自建的 DNS
无日志,无过滤,可以随意使用,但不保证稳定性
DoH: (已被橄榄)https://hk-hkg.moedns.dev/dns-hk
git clone --depth 1 https://git.iqiq.io/felixonmars/dnsmasq-china-list.git /opt/AdGuardHome/dnsrules/dnsmasq-china-list
make -C /opt/AdGuardHome/dnsrules/dnsmasq-china-list adguardhome SERVER=https://doh.pub/dns-query
cat /opt/AdGuardHome/dnsrules/dnsmasq-china-list/accelerated-domains.china.adguardhome.conf >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
echo -e >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
cat /opt/AdGuardHome/dnsrules/dnsmasq-china-list/apple.china.adguardhome.conf >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
echo -e >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
cat /opt/AdGuardHome/dnsrules/dnsmasq-china-list/google.china.adguardhome.conf >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
echo -e >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
echo "https://cn-south.iqiqzz.com/dns-query" >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
echo "https://cn-east.iqiqzz.com/dns-query" >> /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file
mv /opt/AdGuardHome/dnsrules/dnsmasq-china-list/upstream_file /opt/AdGuardHome/dnsrules/
rm -rf /opt/AdGuardHome/dnsrules/dnsmasq-china-list
/opt/AdGuardHome/AdGuardHome -s restart
之后将 AdguardHome 的上游配置改为 /opt/AdGuardHome/dnsrules/upstream_file
即可
如果你只是在内网使用,那么可以忽略接下来的内容
如果你想要在公网部署来提供服务,你需要知道一个问题,你的上游 DNS 必须支持 ECS
因此国内只推荐使用 DNSPod 的公共 DNS 作为上游
海外可以使用谷歌 DNS 和 Quad9 支持 EDNS 的 DNS 或也可以使用上篇文章提到的 IQDNS 和我搭建的 DNS
这样才能正确的就近解析 CDN 的域名