装上代理后仍会遇到几类问题:视频网站不开会员照样弹 5 秒贴片广告,App 开屏广告关不掉;没有分流时所有流量都经过代理,国内网站访问变慢;国外域名可能被国内 DNS 解析,运营商能看到访问记录,甚至被劫持返回错误 IP,导致 Claude Code 间歇性断连 [0]。素材的解法是让 OpenClash、MosDNS、AdGuardHome 分别承担代理解析、DNS 分流和广告拦截与缓存,组成一条从 dnsmasq 入口到代理出口的分层 DNS 链路 [0]。
一条链路,四层分工
链路顺序固定:设备请求依次经过 dnsmasq、AdGuardHome、MosDNS,国外域名最后到达 OpenClash [0,56]。各层职责不能重叠,否则会互相冲突。
- dnsmasq 作为入口层,不承担决策。在 OpenWrt 上它不只是 DNS 转发器,还负责 DHCP、主机名和本地域名解析 [43],因此链路保留它在 53 端口的入口位置,仅将上游指向 AdGuardHome,而不是禁用 [0,52]。AdGuardHome 成为 dnsmasq 上游后,状态会显示’运行中已重定向’ [0]。
- AdGuardHome 负责广告拦截和缓存。它监听 533 端口 [0,56],广告域名命中黑名单时直接拦截,并启用 DNS 缓存,同一域名第二次访问直接从缓存返回 [0]。选择它作为缓存层还因为其全局可视化的请求记录,能清楚看到广告拦截占比 [52,0]。
- MosDNS 负责 DNS 分流。它监听 5335 端口 [0,56],根据域名,国内域名交给国内 DNS(主路由网关或 223.5.5.5),国外域名转发到 OpenClash 的 7874 端口 [0,56]。它只处理分流,不接管全部 DNS,也不做缓存,缓存统一由 AdGuardHome 负责,避免缓存不一致 [0]。
- OpenClash 是国外域名的出口。DNS 监听端口为 7874 [47],国外域名经此代理解析 [0]。
缓存只保留一层、入口只保留一个,是链路稳定的前提。若上游指回路由器自身的 53 端口,会形成’设备问 dnsmasq,dnsmasq 转 OpenClash,OpenClash 又问回 dnsmasq’的回环,轻则网页间歇超时,重则所有域名卡在解析 [43]。
零泄漏的真相:国外域名在本地根本不解析
ipleak.net 将’DNS 泄漏’定义为发送在 VPN 隧道之外的明文 DNS 查询 [2]。按此定义,防泄漏有两种方式:加密查询,或让查询不在本地发生。本方案采用后者,但多数人误以为是前者。
在 Fake-IP 模式下,OpenClash 收到国外域名的解析请求时不去查询真实 IP,而是从保留地址池 198.18.0.1/16 中分配一个假 IP 返回给设备,并在内部记录’域名 ↔ 假 IP’的映射 [48]。设备用假 IP 发起连接时,内核根据映射表还原出原始域名,交给代理服务器完成解析和请求 [42]。因此,dnsmasq、AdGuardHome、MosDNS 整个本地链路从未对国外域名发起真实解析 [39,42],使用 ipleak 检测时看到的全是海外节点 [44]。
这也解释了素材为何要求’停用域名嗅探’:域名嗅探原本是为 redir-host 模式准备的补救手段,用于将真实 IP 还原为域名,以支持 CDN 优化、流媒体解锁等场景 [39]。redir-host 模式已被官方弃用 [39,41],因为它需先在本地解析真实 IP,同一服务器托管多个域名时无法区分目标,且解析动作可能被污染 [41,42]。Fake-IP 为每个域名分配不同的假 IP,映射不会出错,也省去了本地解析 [41,42]。既然不需要真实 IP,嗅探就没有作用 [39]。
理解了这点,就能明白两条自定义 GEOIP 规则为何要带 no-resolve:GEOIP、IP-CIDR 这类规则会触发内核解析真实 IP 进行匹配 [48],no-resolve 使内核跳过解析,直接用连接时的原始 IP 查询 GeoIP 库 [0]。国内真实 IP 命中 CN 规则直接直连;假 IP(198.18.x.x)查不到 CN 归属,最终落到 MATCH 规则走代理 [0]。素材实测 baidu.com 解析为真实 IP,google.com 返回 198.18.x.x 假 IP [0],与社区中’所有规则加 no-resolve 后检测不到任何国内 DNS’的结论一致 [44]。
国内流量不绕路:直连的账
MosDNS 的分流确保国内域名通过国内 DNS 解析并直连 [0,52]。若不分流,所有流量都会经过代理,国内网站变慢 [0];代理流量是中转产生的传输量 [5],住宅代理还有按流量计费的模式 [6],将本可直连的国内流量绕经代理,既增加中转费又降低速度,素材称之为’住宅 IP 流量白白浪费’ [0,4,5,6]。另外,有人因运营商 DNS 不支持 DoH、可能被劫持,不填主路由网关而直接使用 223.5.5.5、119.29.29.29 等公共 DNS [52,0]。副路由的常见问题是 IP 段与主路由冲突,可在网络 → LAN 口修改为不冲突网段,例如 192.168.6.1 [0]。
广告拦截:在解析这一步掐断广告源
广告能拦截,是因为绝大多数广告请求通过域名发出:解析到广告域名时 AdGuardHome 直接拦截,客户端拿不到 IP,广告自然无法加载 [0]。素材推荐的黑名单为 CHN: anti-AD,该列表以’中文区命中率最高’为目标,规则来自上游列表和网友提交的 issue,代码全部开源可审查 [30],提供 AdGuardHome 等各平台规则格式 [30]。若误拦正常域名,可向项目提交 issue [30]。
部署要点与验证
安装可通过 Are-u-ok 仓库的 .run 包:AdGuardHome 为通用包,MosDNS 分 x86_64、aarch64 等架构 [1],在 iStore 手动安装或执行 sh 包名.run [1];MosDNS 另有独立的 Web GUI 和一键安装脚本项目 [17,61]。串联时有四个开关不要遗漏:OpenClash 的本地 DNS 劫持需禁用 [0,50,53];AdGuardHome 重定向选’作为 dnsmasq 的上游服务器’ [0];dnsmasq 的 DNS 查询缓存清零 [0];运行模式确认为 Fake-IP 增强模式并停用域名嗅探 [0,39]。规则方面:覆写设置中加入两条带 no-resolve 的 GEOIP 规则,配置中只保留一条指向代理组的 MATCH [0];勿开启订阅自动更新,否则自定义规则会被覆盖 [0]。
验证分三步:终端查询 baidu.com 应返回真实 IP,google.com 应返回假 IP [0,44];AdGuardHome 仪表盘查看拦截统计(素材实测 24 小时拦截 1003 条,占比 14.9%)[0];最后用 ipleak.net 检测,该工具同时检查 DNS、WebRTC 等多类泄漏 [2],多次请求均通过、看不到任何国内 DNS 才算合格 [0,44,52]。排错时需注意:内网域名(如 openwrt.lan、NAS 主机名)若返回假 IP,说明 Fake-IP 过滤配置有误,应补 fake-ip-filter 而非修改上游 [43]。常见的 nft_tproxy 报错源于缺少依赖包,opkg install 安装即可;AdGuardHome 向导打不开多为 3000 端口被占用,更换端口即可 [0]。
参考来源
- 素材原文(见文首来源链接)
- Are-u-ok/packages_24.10/README.md at master · bcseputetto/Are-u-ok · GitHub
- IP/DNS Detect - What is your IP, what is your DNS, what informations you send to websites.
- GitHub - wlgqos/residential-proxy-tools: 学会使用这16个住宅代理软件,五分钟搞定IP切换 · GitHub
- 高效地使用住宅动态代理IP,同时节约宝贵的流量资源
- 代理IP流量消耗计算|代理IP流量计费公式详解
- 静态住宅代理 - 高稳定性IP解决方案 | IPFlex
- 按流量收费的长效ip:精准计费的网络服务创新 - 神龙HTTP代理
- What to do if we flag your IP address as a residential proxy? - General - IPinfo Community
- Residential proxies: the new invalid traffic blind spot
- What Is a Residential Proxy? Definition, Risks & Detection
- What is a residential proxy? | Choose the one you need with Oxylabs!
- What Is a Residential Proxy and How Does It Work?
- Evading Residential Proxy Networks: Protecting Your …
- GitHub - allanchen2019/mosdns-debian-install: Script to install mosdns on Debian(or derivatives) Linux · GitHub
- 文章归档 – 蜗居
- GitHub - techprober/mosdns-opnsense-install: A generic guide to deploy mosdns to OPNSense · GitHub
- GitHub - InabaKumori/MosDNS-Web-GUI: MosDNS Web GUI is a program that aims to provide a web interface for managing and interacting with MosDNS, a plugin-based DNS forwarder/traffic splitter. This project is a work in progress and currently offers basic functionalities. · GitHub
- AUR (en) - mosdns
- malware - How should source code security be checked? - Information Security Stack Exchange
- 使用高级 DNSSEC | Google Cloud Documentation
- DNS性能测试| 网络流量生成| 数据安全 - 艾体宝
- CN111030888B - 域名系统dns容量测量方法、装置、设备及介质 - Google Patents
- 大型网络的DNS : r/networking
- Comparing the Effects of DNS, DoT, and DoH on Web …
- DNS Latency Testing: How To Measure DNS Performance (Tools & Tips)
- DNS Performance - Compare the speed and uptime of enterprise and commercial DNS services | DNSPerf
- DNS queries are not being consistently answered | GRC Public Forums
- DNS Speed Test — Find Your Fastest DNS in 30 Seconds | Control D
- Introducing DNS Speed Test Web Tool: Find the Fastest …
- GitHub - privacy-protection-tools/anti-AD: 致力于成为中文区命中率最高的广告过滤列表,实现精确的广告屏蔽和隐私保护。anti-AD 现已支持 AdGuardHome,dnsmasq,Surge,Pi-Hole,Clash, mihomo,smartdns,sing-box 等网络组件。完全兼容常见的广告过滤工具所支持的各种广告过滤列表格式 · GitHub
- 【教程】AdGuard DNS 过滤规则怎么选?
- anti-AD 加速下载 · v4.3 GitHub Release 反代镜像 · anti-AD Download Guide | 冲浪笔记
- AdGuard规则整理 - 哔哩哔哩
- Retrospective Measurement and Analysis of Anti-Adblock Filter Lists
- Analyzing the Crowdsourcing Process of Ad-blocking Systems - Gang Wang
- Adverse Media False Positives: A Complete 2026 Guide
- What Are WAF False Positives? - Kemp
- Avoiding false positives: Strategic implementation of keyword blocking - Integral Ad Science
- [Feature] 能否在 Wiki 加上 “实验性:绕过中国大陆 IP” 具体实现的流程图 · Issue #3467 · vernesong/OpenClash · GitHub
- 家庭网络环境改造
- Clash为什么放弃了Redir-host? | 异域茶壶的神秘庄园
- 关于 Clash 科学上网的最佳实践
- OpenClash Fake-IP 和OpenWrt DNS 冲突怎么排查| dnsmasq - 冲浪笔记
- 关于 openclash DNS 解析的疑问 - V2EX
- fake ip可以访问外网 · Issue #3548 · vernesong/OpenClash
- Fix DDNS Issues with OpenClash on OpenWRT – iKOOLCORE
- OpenClash + AdGuardHome + MosDNS Complete Closed-Loop Solution: Achieve Fake-IP Effectiveness, DNS Anti-Pollution, More Thorough Ad-Blocking and DNS Cache Optimization - Technology King
- Clash DNS | Clash Knowledge
- DNS configuration - mihomo docs
- 发一个openclash与Mosdns和AdguardHome的配置,看看这样子可以吗 · vernesong/OpenClash · Discussion #2995 · GitHub
- 使用mosdns 提前进行dns 进行分流
- OpenClash + Mosdns + ADG如何防止DNS泄露? | Homelab Dolingou Network
- AdGuardHome + mosdns + openclash 打造自由的家庭/办公室网络
- 基于DNS 的内网透明代理分流方案
- OpenClash + Mosdns + ADG如何防止DNS泄露? | Deep Router
- 使用 AdGuardHome + MosDNS 实现高效广告过滤与智能 DNS 分流科学上网-详解(以OpenClash 为例) - 科技老王
- AdGuardHome + mosdns + openclash 打造自由的家庭/办公室网络
- mosdns分流,adguardhome去广告,配合openclash,珠联璧合,举世无双
- 使用mosdns 提前进行dns 进行分流
- DNS resolve process - mihomo docs
- GitHub - slobys/openclash-auto-installer: OpenClash one-click install/update/uninstall/repair scripts for OpenWrt, iStoreOS and ImmortalWrt · GitHub
- 软路由玩家必看!OpenClash 这样设置才叫顶级,自建节点 xHTTP 满速起飞,稳到不想关机!
- 【全网最细】小白用户最简单的openclash上手配置!降低延迟提升响应速度!无污染、无泄漏,一次性讲清楚redirect、tproxy、TUN模式、兼容模式、增强模式、混合模式、路由决策、防火墙 - 科学上网 技术分享
- OpenClash