OpenWrt养老旁路由从零开始(基于OpenClash与Mihomo内核)
OpenWrt养老旁路由从零开始(基于OpenClash与Mihomo内核)
kikockOpenWrt 养老旁路由从零开始 (基于 OpenClash 与 Mihomo 内核)
本文针对原本使用 PassWall 的旁路由方案进行彻底重构与升级。采用目前生态活跃度最高、规则分流更精细的 OpenClash(Meta/Mihomo 内核),并结合 MosDNS(智能分流与高速缓存) 与 AdGuardHome(全网去广告),构建一套兼顾低延迟、防 DNS 泄漏、断网容灾、全屋无感漫游的终极家庭养老网络系统。
一、准备工作与网络架构
1. 硬件与环境准备
- 物理设备:软路由(x86 J1900/J4125/N100、N1 盒子、树莓派等独立硬件)或虚拟机/Docker 实例。
- 上游网络:主路由(iKuai / 华硕 / 硬路由等)正常拨号上网,并负责局域网基础 DHCP。
- 旁路由网络配置参考:
- 主路由 IP:
192.168.66.1 - 旁路由 IP:
192.168.66.250(子网掩码255.255.255.0,网关指向主路由192.168.66.1)
- 主路由 IP:
2. iKuai + OpenWrt 旁路由网络拓扑
1 | [ 宽带光猫 ] |
3. 为什么将 PassWall 替换为 OpenClash?
- 规则粒度更精细:OpenClash 支持丰富的 Rule-Set(如 Loyalsoldier 全套规则集合),能够实现精准的流媒体(Netflix/Disney+/YouTube)、AI(ChatGPT/Claude)、游戏低延迟通道细分。
- 可视化控制面板更现代:支持 Yacd / Metacubexd 现代 Web 仪表盘,支持实时测速、各连接来源 IP 监控与策略组平滑切换。
- 分流协议支持全面:深度拥抱 Meta (Mihomo) 内核,原生完美支持 Vless-Reality、Hysteria2、TUIC5 等高抗封锁协议。
二、涉及组件与项目下载
| 组件名称 | 项目地址 / 建议版本 | 主要职责 |
|---|---|---|
| ImmortalWrt 固件 | 官方开源项目 | 基础操作系统,原生对国内网络和硬件有极佳优化 |
| OpenClash | vernesong/OpenClash | 代理核心管理器,集成 Mihomo (Clash.Meta) |
| MosDNS | sbwml/luci-app-mosdns | 国内外域名判定、防 DNS 泄漏与超大内存缓存 |
| AdGuardHome | rufengsuixing/luci-app-adguardhome | 拦截全网广告与恶意追踪、查询日志审计 |
三、OpenClash 与相关组件安装步骤
通过 SSH 连接到旁路由(推荐使用 MobaXterm 或终端命令行):
1. 安装 OpenClash 及依赖
1 | # 更新软件包列表 |
2. 安装 MosDNS 与 AdGuardHome
1 | # 安装 MosDNS 核心及 LuCI 界面 |
四、全链路 DNS 与流量协同设计
为避免循环解析(DNS Loop)与 DNS 污染,我们制定了一套最稳定、最高效的四级 DNS 管道:
1 | [ 客户端发出 DNS 查询 (UDP 53) ] |
1. MosDNS 详细配置
- 打开 服务 -> MosDNS 后台:
- 监听端口:默认
5335; - 重定向:选择
无(避免直接顶替 53,交由上层调度); - 勾选:
远程 DNS 首选 IPv4、自定义国内 DNS(填入223.5.5.5、119.29.29.29); - 上游海外 DNS:设置为 OpenClash 的 DNS 监听地址
127.0.0.1:1053; - 保存并应用配置。
- 监听端口:默认
2. AdGuardHome 详细配置
- 打开 服务 -> AdGuardHome:
- 管理面板监听端口:
3000; - DNS 服务监听端口:
52(绑定在所有接口或127.0.0.1); - 重定向:选择
作为 dnsmasq 的上游服务器;
- 管理面板监听端口:
- 登录 Web 控制台 (
http://192.168.66.250:3000):- 进入 设置 -> DNS 设置:
- 上游 DNS 服务器:仅填写
127.0.0.1:5335(指向 MosDNS); - DNS 缓存配置:大小设为
0或清空(因为 MosDNS 自带 50,000 条高性能内存缓存,避免双重缓存冗余); - 拦截模式:选择
默认 (未指定 IP / 0.0.0.0)。
- 上游 DNS 服务器:仅填写
- 进入 设置 -> DNS 设置:
3. OpenWrt 原生 Dnsmasq 配置
- 进入 网络 -> DHCP/DNS:
- DNS 转发:填写
127.0.0.1#52(将所有解析请求交给 AdGuardHome 过滤); - 高级设置:勾选
严格按顺序解析,关闭从 resolv.conf 读取。
- DNS 转发:填写
五、OpenClash 核心与规则配置
1. 内核切换与模式设定
- 进入 OpenWrt 后台 -> 服务 -> OpenClash。
- 点击 “插件设置” -> “版本更新”:
- 将运行内核切换为 **
Meta (Mihomo)**。
- 将运行内核切换为 **
- 点击 “常规设置” -> “模式设置”:
- 运行模式:推荐选择
Fake-IP (TUN 模式)或 **Fake-IP (混合模式)**; - **TUN 模式堆栈 (Stack)**:
- 软路由(x86_64、多核高负载)推荐优先选 **
Mixed**(兼顾系统内核的高吞吐与用户态防污染); - 若在低功耗 ARM / Docker 环境运行或追求极致稳定,可选择 **
gVisor**;
- 软路由(x86_64、多核高负载)推荐优先选 **
- 本地 DNS 端口:设置为
1053(与 MosDNS 的海外上游端口严格对应)。
- 运行模式:推荐选择
2. 导入全功能分流订阅与规则
针对全屋加速需求,推荐在 OpenClash 中应用整合好的规则配置:
- 点击顶部导航栏的 “配置管理”;
- 在【配置文件上传】处,上传经过 Loyalsoldier 规则强化的全功能 YAML 配置文件;
- 关键参数校验:
redir-port: 7892tproxy-port: 7895mixed-port: 7893dns.listen: 0.0.0.0:1053dns.enhanced-mode: fake-ip
- 上传后选中该配置,点击 “应用配置” 并启动 OpenClash。
3. 控制面板管理
启动成功后,点击 OpenClash 顶部的 “打开控制面板”(如 Metacubexd / Yacd):
- **
🌍选择代理节点**:支持自动测速优选(URL-Test),根据延迟自动选取最优线路; - **
📢谷歌服务 / 🎬国际流媒体**:将 YouTube、Netflix 等重度流量分配至大带宽专线; - **
🤖人工智能**:将 OpenAI、Claude 等高风控域名分流至干净原生住宅 IP 节点; - **
🐟漏网之鱼**:配置兜底规则,防止未收录域名的 DNS 劫持。
六、全屋接入方式(客户端配置)
方案 A:全屋无感模式(主路由 DHCP 下发)
- 登录主路由器后台(如
192.168.66.1); - 打开 DHCP 服务器设置,修改下发参数:
- 默认网关:填入旁路由 IP
192.168.66.250; - 主 DNS:填入旁路由 IP
192.168.66.250; - 备用 DNS:留空或填写
223.5.5.5;
- 默认网关:填入旁路由 IP
- 保存后全屋设备断开 Wi-Fi 重新连接,即可享受全自动分流与广告过滤。
方案 B:单设备静态模式(不改动主路由)
以 Windows 电脑为例:
- IP 地址:
192.168.66.88(同一网段空闲 IP) - 子网掩码:
255.255.255.0 - 默认网关:
192.168.66.250 - 首选 DNS:
192.168.66.250
七、避坑与关键排障指南
旁路由网络回环与断网(MASQUERADE 动态伪装):
- 实机已解决:现代 ImmortalWrt 23/24 固件底层已全面采用
nftables (Firewall4),无需且不推荐在自定义脚本中手写老旧的iptables命令。 - 标准规范:在 OpenWrt 网络 -> 防火墙 -> 区域 中,编辑 lan 区域,确保勾选 【IP 动态伪装 (MASQUERADE)】 与 【MSS 钳制】,同时 OpenClash 开启“绕过网关兼容模式”,原生解决非对称路由丢包。
- 实机已解决:现代 ImmortalWrt 23/24 固件底层已全面采用
IPv6 导致分流绕过或泄露:
- 实机已解决:已在旁路由的 Dnsmasq 中通过
uci set dhcp.@dnsmasq[0].filter_aaaa='1'开启了 AAAA 记录过滤,彻底阻断局域网终端获取 IPv6 地址直连逃逸。 - 双重保障:若主路由(如 iKuai)开启了 IPv6,建议在主路由后台关闭 IPv6,或关闭 IPv6 RA 中的 DNS 下发,确保局域网 DNS 100% 收敛至旁路由。
- 实机已解决:已在旁路由的 Dnsmasq 中通过
OpenClash 关机导致全屋断网?:
- 实机已解决:系统后台已原生运行
openclash_watchdog.sh进程守护看门狗,任何非预期的核心崩溃会在数秒内被自动拉起,彻底杜绝死锁断网。 - 分流链路:国内域名由
Dnsmasq (53) -> AdGuardHome (52) -> MosDNS (5335)直接走阿里/腾讯公共 DNS 进行解析与直连转发,只要旁路由硬件开机,即便代理核心短暂停机维护,全屋基础国内网络依然持续畅通。
- 实机已解决:系统后台已原生运行




