在科学上网的环境中,DNS 的配置不仅影响访问速度,还关系到广告过滤、隐私保护乃至网络分流的精准度。先前不管是结合passwall的组合还是openclash组合都做过视频以及写过博客,但还是有种种问题,今天我们以 OpenClash 为例,详细剖析讲解下如何通过 AdGuardHome + MosDNS 的组合,实现 高效 DNS 分流与广告拦截,以及DNS防污染等等,所遇到无法使用问题一一详解,最终达到更快更干净的上网体验。

一、整体架构简述
整个 DNS 请求的流程如下:
客户端 → OpenClash(科学上网) DNS 劫持 → AdGuardHome(广告过滤)→ MosDNS(智能分流)→ 上游 DoH/DoT/DNS
- AdGuardHome:起到广告拦截、恶意域名拦截等作用;
- MosDNS:根据规则分流请求(如国内用国内 DNS,国外走远程 DNS),提升解析效率;
- OpenClash:提供透明代理功能,同时可以覆写 DNS 设置。
这种架构下,客户端使用OpenClash,DNS 请求先经过 AdGuardHome 的过滤,再由 MosDNS 进行解析分流,达成 广告拦截 + 智能分流 + 响应快速 的目标。

二、详细配置步骤
1. 设置 MosDNS
- 监听端口:建议设置为
5335
; - 配置转发上游:包括国内 DNS(如 114.114.114.114)和国外加密 DNS(如 Cloudflare、Google);
- 规则分流:使用 geosite 或 rule-set 规则,按需选择
china-list
、gfw-list
等; - 运行方式:可作为系统服务运行,保证启动即生效。

2. 设置 AdGuardHome
- 监听端口:建议使用
533
(默认的53
会被其他服务占用); - 上游 DNS:设置为
127.0.0.1:5335
,即指向 MosDNS; - 反向 DNS、自定义 DNS、私有 DNS等也统一设置为
127.0.0.1:5335
; - 日志功能:开启查询日志,方便验证请求流向与拦截记录。




3. OpenClash 设置
在 OpenClash → 覆写设置(Profile Tuning)
中:
- NameServer / Fallback / DefaultDNS 全部设置为
127.0.0.1:533
,即 AdGuardHome; - 禁用
本地 DNS 劫持(DNS Hijack)
中的转发到7874
,因为那是 OpenClash 自己内置的 DNS 转发端口,会绕过 AdGuardHome 和 MosDNS; - 如果开启了
Dnsmasq
的转发,也请确保它的上游指向127.0.0.1:5335
(MosDNS)或127.0.0.1:533
(AdGuardHome); - 最好关闭 OpenClash 自带的 DNS 解析插件,统一由 AdGuardHome + MosDNS 接管。

127.0.0.1:533
,即 AdGuardHome

三、验证效果
- AdGuardHome 查询日志
可通过 Web 控制台查看所有经过的请求、拦截记录和重定向状态。如果请求都被记录下来,说明配置生效。 - MosDNS 运行日志
若开启了 MosDNS 的日志功能,也可以通过命令行查看是否接收到请求,如:
ss -lnpt | grep 5335
3. 局域网设备 DNS 指向
建议将路由器的 DHCP 分配 DNS 设置为 局域网设备 → AdGuardHome(533)
,避免设备跳过本地过滤链。
四、常见问题解答
Q1:为什么广告拦截无效?
可能的原因:
- OpenClash 插件设置中启用了本地 DNS 劫持,导致请求被劫持到
7874
; - 局域网设备直接使用了其他 DNS(如 8.8.8.8);
- AdGuardHome 上游配置错误,未接入 MosDNS。
Q2:AdGuardHome 日志看不到请求?
排查项:
- OpenClash DNS 设置是否正确指向
127.0.0.1:533
; - 设备 DNS 设置是否为 AdGuardHome;
- 是否有其他 DNS 服务占用了 53 或 533 端口。
五、结语
在翻墙科学上网使用OpenClash+ AdGuardHome + MosDNS 的组合,你不仅可以实现毫秒级 DNS 响应,还能有效过滤广告和恶意域名,同时借助 MosDNS 的分流能力,合理划分国内外请求保证防止DNS污染,并且提高访问效率。这套方案在实际使用中已被多次验证有效,欢迎大家尝试搭建,并参考我们之前的相关教程进一步优化配置。
如需更进一步的配置案例(如配合 Passwall 使用、配合不同内核运行更多好玩的配置使用),可参考我之前的详细实战文档。
如有问题,欢迎评论交流!
发表回复