DNS 三大神器 AdGuardHome、MosDNS、SmartDNS,该如何选择?
不,小孩子才做选择,我全都要。
于是有了这个项目,套娃使用三大神器,试图找到一套最佳实践。
使用 Docker 一键安装。
network host 模式(推荐使用)
docker run -d \
--restart unless-stopped \
--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
端口映射模式(MosDNS、SmartDNS 的端口可以不映射)
docker run -d \
--restart unless-stopped \
--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 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/force-cn.txt
。默认为空,可自行添加内容,如填入 VPS 的域名。$HOME/nestingdns/etc/site/force-nocn.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_us,设置为 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