AdGuardHome、MosDNS、SmartDNS 套娃使用实践
10K+
DNS 三大神器 AdGuardHome、MosDNS、SmartDNS,该如何选择?
不,小孩子才做选择,我全都要。
于是有了这个项目,套娃使用三大神器,试图找到一套最佳实践。

使用 Docker 一键安装。
docker run -d \
--restart on-failure:3 \
--name nestingdns \
--network host \
-v $HOME/nestingdns/etc:/nestingdns/etc \ # 配置文件路径
-v $HOME/nestingdns/work:/nestingdns/work \ # 工作文件路径
-v $HOME/nestingdns/log:/nestingdns/log \ # 日志文件路径
-e TZ=Asia/Shanghai \
-e SCHEDULE="0 4 * * *" \ # 每天 4 点更新规则文件,重启 MosDNS
217heidai/nestingdns
docker run -d \
--restart on-failure:3 \
--name nestingdns \
-p 3000:3000 \ # AdGuardHome web 页面
-p 4053:4053 \ # AdGuardHome NDS
-p 4053:4053/udp \ # AdGuardHome NDS
-p 5053:5053 \ # MosDNS NDS
-p 5053:5053/udp \ # MosDNS NDS
-p 4000:4000 \ # SmartDNS web 页面
-p 6053:6053 \ # SmartDNS NDS
-p 6053:6053/udp \ # SmartDNS NDS
-p 7053:7053 \ # SmartDNS NDS
-p 7053:7053/udp \ # SmartDNS NDS
-p 8053:8053 \ # SmartDNS NDS
-p 8053:8053/udp \ # SmartDNS NDS
-v $HOME/nestingdns/etc:/nestingdns/etc \ # 配置文件路径
-v $HOME/nestingdns/work:/nestingdns/work \ # 工作文件路径
-v $HOME/nestingdns/log:/nestingdns/log \ # 日志文件路径
-e TZ=Asia/Shanghai \
-e SCHEDULE="0 4 * * *" \ # 每天 4 点更新配置文件,重启 MosDNS
217heidai/nestingdns
默认已全部关闭 IPv6 支持。
AdGuardHome 配置文件为 $HOME/nestingdns/etc/conf/adguardhome.yaml。
MosDNS 配置文件为 $HOME/nestingdns/etc/conf/mosdns.yaml、$HOME/nestingdns/etc/conf/mosdns_load_rules.yaml、$HOME/nestingdns/etc/conf/mosdns_forward.yaml。
$HOME/nestingdns/etc/site/。根据创建容器时的 SCHEDULE 参数,定时下载更新分流规则文件,默认每天 4 点更新。$HOME/nestingdns/etc/site/direct_custom.txt。默认为空,可自行添加内容,如填入 VPS 的域名。$HOME/nestingdns/etc/site/proxy_custom.txt。默认为空,可自行添加内容。$HOME/nestingdns/etc/site/hosts.txt。默认为空,可自行添加内容(注意格式与操作系统的 hosts 不一样,具体请参考官方 wiki)。$HOME/nestingdns/etc/conf/mosdns_forward.yaml 中设置 sequence dns_gfw,如有多个代理地址切换使用的,请设置较小值,如 60。(上游 smartdns gfw 组默认已关闭缓存、测速)$HOME/nestingdns/etc/conf/mosdns_forward.yaml 中找到 ecs_mainland(推荐设置为宽带拨号自动获取的运营商 DNS IP)、ecs_gfw(推荐设置为 VPS 测试 IP),放开调用前的注释。$HOME/nestingdns/etc/conf/mosdns_forward.yaml 中找到所有 best_ip,删掉注释,并设置相应 black_hole ip(建议多填几个不同网段的 ip)。测速工具推荐使用 CloudflareSpeedTest(注意测速必须关闭代理)。由于测速需关闭代理,因此未做成自动化脚本,请定期手工测速。
$HOME/nestingdns/etc/conf/mosdns_forward.yaml 中 sequence blackhole_cloudflare。SmartDNS 配置文件为 $HOME/nestingdns/etc/conf/smartdns.conf。
dig @ip -p 4053 www.baidu.com
Content type
Image
Digest
sha256:3fa42a4ed…
Size
37.9 MB
Last updated
4 days ago
docker pull 217heidai/nestingdns:20260714