5
0
1

2026 MosDNS 对接 PassWall:DNS 分流、防泄漏与广告过滤完整教程

文章摘要
|
OPENWRT · MOSDNS · PASSWALL · DNS FIELD GUIDE
2026 MosDNS 对接 PassWall:DNS 分流、防泄漏与广告过滤完整教程

目标不是“装完插件就结束”,而是把局域网 DNS 请求统一送进 MosDNS,再由 PassWall 配合代理策略完成直连 / 远程解析分流。本文从安装、5335 监听、DoH 上游、PassWall DNS 指向,到泄漏与广告过滤测试全部走一遍。

OpenWrt 24.10 / 25.12MosDNS v5PassWallDoHDNS Leak Test
先说明新版与原教程的差异

你提供的原教程使用第三方 openclash-auto-installer 菜单安装 MosDNS;本篇主流程改为当前 sbwml/luci-app-mosdns 官方安装脚本。原教程的 5335 监听、Cloudflare / Google DoH、缓存、广告过滤、PassWall 指向 127.0.0.1:5335 以及泄漏测试流程全部保留。PassWall 当前默认 DNS 分流器已是 ChinaDNS-NG,所以本文的“MosDNS 接管模式”属于自定义方案,不是 PassWall 默认值。

先固定 DNS 链路:谁监听,谁转发,谁负责分流

目标避免 MosDNS、Dnsmasq、PassWall 同时抢 DNS 重定向,导致环路、超时或“看似能上网但 DNS 泄漏”。
局域网设备DNS 请求
Dnsmasq / PassWall把解析交给本机
MosDNS :5335缓存 / 规则 / 上游选择
国内 / 远程 DoH按规则解析
本文采用的职责划分

MosDNS 监听 0.0.0.0:5335;PassWall 的直连 DNS 与远程 DNS 都指向 127.0.0.1:5335。为了避免重复接管,原教程要求 MosDNS 与 PassWall 的“DNS 重定向”都关闭。这个设置请只在确认你的路由器 DNS 流程与本文一致时使用。

准备 OpenWrt,并确认包管理器和 DNS 端口

目标先识别系统代际、架构和当前 53 / 5335 端口状态。
项目建议
OpenWrt官方 MosDNS 项目当前提供 24.10 与 25.12 预编译包
包管理器24.10 通常使用 opkg;25.12 / 新版使用 apk
PassWall确保插件本身已可正常代理,再改 DNS
回滚修改 DNS 前记下当前配置,最好先备份 OpenWrt
sh · 环境检查
cat /etc/openwrt_release
uname -m

command -v opkg || command -v apk
netstat -lnptu 2>/dev/null | grep -E ':(53|5335)\b' || true
完成标准你知道当前系统版本、CPU 架构,并确认 5335 没有被别的服务占用。

安装 MosDNS:优先使用当前官方项目脚本

目标安装 MosDNS v5 和 LuCI 管理界面。

当前官方项目给出的预编译安装方式是先安装 curl,再执行安装脚本。

OpenWrt 24.10 / opkg

opkg update
opkg install curl
sh -c "$(curl -ksS https://raw.githubusercontent.com/sbwml/luci-app-mosdns/v5/install.sh)"

OpenWrt 25.12+ / apk

apk update
apk add curl
sh -c "$(curl -ksS https://raw.githubusercontent.com/sbwml/luci-app-mosdns/v5/install.sh)"
原教程的第三方安装方式

原文使用:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/slobys/openclash-auto-installer/main/menu.sh)"

它可以作为备用方案,但这是第三方合集脚本,不是 MosDNS 官方安装入口。新版教程把它保留为“原教程路径”,不作为默认推荐。

验证

LuCI 中应出现 MosDNS 菜单;SSH 中可检查相关包:

opkg list-installed 2>/dev/null | grep -i mosdns || apk list --installed 2>/dev/null | grep -i mosdns

配置 MosDNS 基本选项:让 5335 成为统一入口

目标按原教程建立 MosDNS 的本地监听和转发基础。

进入 服务 → MosDNS → 基本选项。没有列出的选项先保持默认。

设置项本文值作用
启用开启启动 MosDNS
配置文件内置预设沿用 LuCI 预设流程
监听地址0.0.0.0监听路由器所有接口
监听端口5335给 PassWall / Dnsmasq 调用
DNS 转发开启允许作为上游转发器
DNS 重定向关闭避免和 PassWall / 其他 DNS 接管规则重复
远程 DNS 首选 IPv4远程沿用原教程设置
DNS 首选 IPv4开启优先 IPv4 返回
自定义国内 DNS开启建立国内解析链路
sh · 保存后检查监听
netstat -lnptu 2>/dev/null | grep ':5335 '
预期结果能看到 MosDNS 正在本机 5335 端口监听。若没有监听,不要继续改 PassWall。

配置国内 DNS 与远程加密 DNS

目标国内域名走低延迟上游,远程域名使用加密 DoH。

原教程要求“国内 DNS 服务器选择加密 DNS”,远程 DNS 填写 Cloudflare 与 Google。两个 DoH 端点当前仍有效:

text · 远程 DoH
https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
关于上游选择

Google 官方的 RFC 8484 端点是 https://dns.google/dns-query。国内 DNS 不建议照抄某个固定公共 DNS,直接在你当前 MosDNS LuCI 中选择可用、延迟低的加密国内 DNS 即可。

验证

保存应用后,从路由器本机直接请求 MosDNS:

nslookup openwrt.org 127.0.0.1#5335 2>/dev/null || \
nslookup openwrt.org 127.0.0.1

不同 BusyBox 版本的 nslookup 对自定义端口支持不同;如果命令不支持端口参数,以 LuCI 日志和后面的真实客户端测试为准。

配置 MosDNS 高级选项:缓存、防泄漏和广告过滤

目标复刻原教程真正影响体验的高级参数。
参数原教程值建议
DNS 服务器并发数2保留
空闲超时30保留
TCP / DoT 连接复用开启减少重复建连
防止 DNS 泄露开启保留
DNS 缓存开启保留
DNS 缓存大小8000内存足够时可用
乐观缓存 TTL86400原教程值;遇到解析更新不及时可降低
禁用 RR Type 65 HTTPS/SVCB开启仅在兼容性需要时使用
DNS 广告过滤按需开启规则越多,内存与维护成本越高
不要把“缓存越大、TTL 越长”理解成一定越快

86400 是原教程的激进缓存值。动态 CDN、服务迁移或解析频繁变化时,过长的乐观缓存可能让旧地址留得太久。如果发现某些站点更换节点后打不开,先清缓存或降低 TTL。

配置 PassWall:把直连与远程 DNS 都交给 MosDNS

目标让 PassWall 不再另外选一个 DNS 上游,而是统一调用 127.0.0.1:5335

进入 PassWall → 基本设置 / DNS。本文复刻的是原教程“Dnsmasq + MosDNS 统一入口”方案,而不是 PassWall 当前默认的 ChinaDNS-NG 方案。

PassWall 项目本文值
DNS 分流Dnsmasq
直连 DNS 请求协议通过 TCP 请求 DNS
直连 DNS127.0.0.1:5335
过滤代理域名 IPv6开启
远程 DNS 请求协议TCP
远程 DNS127.0.0.1:5335
默认 DNS远程 DNS
DNS 重定向关闭
和当前 PassWall 默认值不同

PassWall 当前项目默认配置里,dns_shuntchinadns-ng,而且 dns_redirect 默认开启。本文主动改成 Dnsmasq 并关闭重定向,是为了复刻“MosDNS 5335 统一接管”的链路。如果你的现有 PassWall DNS 已经稳定,不要只为了“照抄教程”强行切换。

保存后

重启 PassWall 或路由器,使 Dnsmasq、PassWall 与 MosDNS 按新链路重新加载。

清理 DNS 缓存并重启服务

目标避免旧缓存让新配置看起来“没生效”。

原教程最直接的方法是重启软路由。你也可以先尝试仅重启相关服务:

sh · 服务重载
/etc/init.d/mosdns restart 2>/dev/null || true
/etc/init.d/dnsmasq restart
/etc/init.d/passwall restart 2>/dev/null || true
如果不确定服务名

不同固件 / 分支的 init 脚本名字可能不同。最稳妥的是在 LuCI 保存应用后重启路由器。

验证 DNS 泄漏:不要把“只有国外 DNS”当成唯一正确答案

目标确认客户端 DNS 请求没有绕过你的预期链路。

原教程使用 BrowserLeaks DNS:

原文写“结果应该是 Cloudflare / Google(国外)”。新版这里做一个重要修正:是否出现 Cloudflare / Google 取决于你的域名分类、上游和测试方式,不应该把某一家解析商当成唯一成功标准。

  • 没有出现运营商或浏览器绕过后的意外 DNS。
  • 远程 / 代理域名的解析服务与 MosDNS 的远程上游一致。
  • 国内域名如果走国内上游,测试中出现国内 DNS 并不必然等于泄漏。
  • 浏览器开启 Secure DNS / DoH 时,可能绕过路由器 DNS;测试前要知道浏览器自身是否启用了独立 DoH。
完成标准你能解释测试里出现的每个 DNS 来源,并确认它符合自己设定的分流逻辑。

验证广告过滤和真实网页加载

目标不仅看配置页,还要做一个真实 DNS 过滤与网页访问测试。

原教程使用:

测试结果只说明“当前规则是否拦截了测试域名”,不等于所有网页广告都会消失。DNS 层过滤无法处理与正文同域的广告,也无法替代浏览器内容过滤器。

网页打开速度

连续打开常用国内 / 国外网站,第二次访问通常能受益于 DNS 缓存,但真实页面速度仍主要取决于线路、CDN、TCP/QUIC 和代理节点。

视频缓冲

DNS 能改善“找到正确 CDN 地址”的阶段,不能保证视频吞吐量。缓冲速度最终受代理线路和节点带宽影响。

最终验收:逐项证明链路真正生效

  • MosDNS 服务已启动,5335 正在监听。
  • Cloudflare 与 Google DoH 配置能正常解析。
  • MosDNS DNS 重定向关闭,避免和本文 PassWall 方案重复接管。
  • PassWall 直连 DNS 与远程 DNS 都指向 127.0.0.1:5335
  • 重启后 5335 仍正常监听,网页可以解析。
  • BrowserLeaks 的 DNS 来源符合你设计的分流规则。
  • 广告过滤规则开启后,测试域名命中有变化。
  • 常用国内 / 国外网站、视频服务都实际打开过,而不是只看状态页。

故障排查:按现象找责任层

现象常见原因检查 / 修复
改完 DNS 全网打不开MosDNS 5335 没监听,PassWall 却已经指向它先检查 netstat -lnptu | grep 5335,必要时把 PassWall DNS 改回原值
5335 已监听但解析超时DoH 上游不可达、代理链路或证书时间异常检查系统时间、MosDNS 日志和路由器到上游的连通性
DNS 泄漏测试出现运营商 DNS终端 / 浏览器绕过路由器,或 Dnsmasq 仍有其它上游检查浏览器 Secure DNS、DHCP 下发 DNS、Dnsmasq resolv 配置
测试只出现 Cloudflare/Google,但国内网站变慢所有域名都走远程上游,没有正确国内分流检查国内 DNS 与规则集,不要把“国外 DNS 越纯越好”当目标
某些网站更新 IP 后暂时打不开乐观缓存 TTL 过长清缓存,降低 86400 设置
PassWall 升级后 DNS 行为变化项目默认 DNS 分流器 / 字段改变对照当前 PassWall 配置,不要覆盖升级后的默认值
开启广告过滤后某 App 异常过滤列表误杀业务域名查看查询日志并加白名单,而不是关闭整个 MosDNS

版本说明与官方资料

原教程保留内容:MosDNS 0.0.0.0:5335、远程 Cloudflare / Google DoH、高级缓存与防泄漏参数、PassWall Dnsmasq 模式、直连/远程 DNS 指向 127.0.0.1:5335、关闭 DNS 重定向、BrowserLeaks 和广告过滤测试。

2026 官方补充:MosDNS 改用 sbwml/luci-app-mosdns 当前官方安装脚本;OpenWrt 24.10 / 25.12 包管理器区别;PassWall 当前默认 dns_shunt=chinadns-ngdns_redirect=1;Google DoH 使用 RFC 8484 端点 https://dns.google/dns-query

最终链路

LAN → Dnsmasq / PassWall → MosDNS :5335 → 国内 DNS / 远程 DoH

真正重要的是“每一层职责清楚、没有重复重定向,并且能用实际查询结果解释流量去了哪里”。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

2026 MosDNS 对接 PassWall:DNS 分流、防泄漏与广告过滤完整教程
/archives/mosdns-passwall-dns-guide-2026
作者
X
发布于
2026-08-31
许可协议
CC BY-NC-SA 4.0

评论

欢迎来到我的博客!