从 0 开始建设自己的旁路由
很多家庭网络一开始是这样的:
一、传统软路由:部署在光猫之后
最常见的早期方案,是把软路由直接放在光猫之后,再连接硬路由、交换机和 AP。
若把软路由直接放在光猫和主路由之间,所有流量都会经过软路由。它能实现代理,但也意味着软路由成了全网转发瓶颈;设备性能、稳定性和维护成本都会被放大。若后面的硬路由仍处于路由模式,还可能形成双 NAT。
二、改进版软路由:接入交换机
把软路由接在主路由后的交换机上。
1. 手动切换
需要代理的客户端,手动把 DNS 和默认网关改为软路由的 LAN IP;软路由的上游网关仍是主路由。
这样不用调整主路由,但每台需要代理的设备都要单独设置,而且这些设备的直连流量和代理流量仍会先经过软路由。
2. 软路由 DHCP
软路由仍接在交换机上,但由软路由开启 DHCP、主路由关闭 DHCP。典型场景是 Mac mini 上运行 Surge:它通过 DHCP 向全网宣告自身为默认网关,局域网设备会把 Mac 当作网关上网。
这套方案的缺陷是 Mac mini 重启或故障时,局域网设备的默认网关不可用,可能全网断网。
3. 双 Wi-Fi 切换
也可以准备两个 Wi-Fi:一个下发软路由的 DNS 和网关,另一个保持主路由设置,通过切换 Wi-Fi 改变流量路径。
三、最终旁路由
旁路由的目标不同:只让需要代理的流量进入代理,其余流量仍由主路由直接出网。
主路由继续承担默认网关和 DHCP;旁路由接入现有 LAN,不替换主路由,也不承担普通设备的默认网关。
一个 Wi-Fi 自动分流
示例地址仅用于说明。实际部署时,10.0.0.1、10.0.1.114 和 10.0.1.120 应替换为自己的地址,并确保主路由可以路由到两个服务地址。
四、看起来位置一样,和软路由接交换机有什么不同?
改进版软路由和最终旁路由,硬件都接在主路由后的交换机上;区别不在物理位置,而在客户端的流量如何被送到软路由。
- 改进版软路由:需要代理的客户端手工把 DNS 和默认网关改为软路由。因此该客户端的所有流量,包括直连流量,都会经过软路由。
- 最终旁路由:客户端仍使用主路由作为默认网关;主路由只把
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)的 Fake-IP 流量静态路由给代理主机。
因此,最终旁路由:
- 不需要客户端手工设置默认网关;
- 不需要客户端手工设置 DNS;
- 不需要为直连与代理切换 Wi-Fi;
- 不需要改动客户端配置;
- 不需要代理的流量仍由主路由直接出网;
- 主路由、交换机和 AP 的既有结构保持不变。
五、核心原理:三项服务、两项主路由设置
1. 三项服务
这套方案通常由三个组件构成。它们可以部署在同一台小主机或 NAS,也可以像本文示例一样拆分为 DNS 主机和代理主机。
- AdGuard Home:为局域网提供 DNS 缓存、广告拦截和统一的 DNS 入口。
- MosDNS:按域名规则选择解析路径。
- Mihomo / Surge / Clash 类代理核心:处理代理连接,并提供 Fake-IP DNS 解析。
典型的 DNS 链路如下:
客户端 → AdGuard Home → MosDNS
├─ 直连域名 → 常规 DNS → 真实 IP
└─ 代理域名 → Mihomo Fake-IP DNS → 198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)
这里需要区分两个动作:
- MosDNS 负责判断域名该直连还是代理。
- Fake-IP 通常由代理核心的 DNS 功能生成。 MosDNS 将需要代理的域名转发给该 DNS 上游后,客户端才会得到
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)这类虚拟地址。
代理核心会保存“Fake-IP 与真实域名”的对应关系。后续连接到该 Fake-IP 时,它能够还原域名并按规则转发。
2. 主路由只需要做两项设置
假设:
- 主路由 LAN 地址:
10.0.0.1 - AdGuard Home DNS 地址:
10.0.1.114 - 代理核心地址:
10.0.1.120 - Fake-IP 网段:
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)
则在主路由中设置:
- LAN / DHCP DNS:下发
10.0.1.114给客户端。 - 静态路由:目的网段为
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96),下一跳为10.0.1.120。
不要把 DHCP 默认网关改为旁路由;客户端的默认网关仍然是 10.0.0.1。
六、一次访问是如何走的?
访问不需要代理的网站
- 客户端向 AdGuard Home 查询域名;
- MosDNS 判断该域名走直连 DNS;
- 客户端拿到真实 IP;
- 客户端把流量交给默认网关,也就是主路由;
- 主路由直接出网。
访问需要代理的网站
- 客户端向 AdGuard Home 查询域名;
- MosDNS 将该查询交给 Mihomo / Surge 的 Fake-IP DNS;
- 客户端拿到
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)内的 Fake-IP; - 客户端仍把流量交给默认网关主路由;
- 主路由命中静态路由,将此流量转交给
10.0.1.120; - 代理核心识别 Fake-IP 对应的域名,并通过代理出口访问目标站点。
因此,网络结构没有被改造成“所有流量先经过软路由”;只有 Fake-IP 段的流量才会被导向代理核心。
七、主路由和旁路由怎么选?
1. 主路由:先确认两项能力
这套自动分流方案的前提是主路由能完成以下设置:
- DHCP DNS 下发:可向 LAN 客户端下发自定义 DNS 服务器地址,而不是只能使用主路由自身的地址。
- 静态路由:可添加 LAN 静态路由,将
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)指向代理主机的 LAN IP。
还应确认静态路由的下一跳可以是同一局域网内的主机,并且该设置对所有 LAN 客户端生效。若主路由缺少其中任一功能,仍可采用前文的“改进版软路由”方案,但无法实现一个 Wi-Fi 下的全自动 DNS 分流。
硬件上优先选择具备完整 DHCP、DNS 下发和静态路由功能的主路由,例如 UniFi 网关、MikroTik RouterOS(ROS)设备,或安装 OpenWrt 的硬路由。购买前仍应在该型号的管理界面或官方文档中逐项确认上述能力,尤其是 IPv6 ULA 与 IPv6 静态路由。
2. 旁路由:按实际负载选择
旁路由硬件应按“需要代理的并发流量”和“是否还承载 DNS”等实际负载决定,而不是只看网口数量。
- 低负载 / 入门:网心云 OEC 这类 ARM 小主机可用于 DNS 与轻量代理。
- 小体积:NanoPi R28S 一类双千兆 ARM 设备。
- 性能优先:NanoPi R76S 一类较新的 ARM 设备,适合更高的代理吞吐与更多规则。
- 多网口需求:EasyPi R1 Pro 一类带多个 1G / 2.5G 网口的设备,适合需要多网段或多线路的场景。
- 高性能代理:Mac mini 可以运行 Surge 或 Mihomo,适合承担高吞吐代理。
可选系统包括 Armbian、Debian、Ubuntu,以及群晖 DSM、飞牛 fnOS 等 NAS 系统的容器环境。AdGuard Home、MosDNS 这类 DNS 服务内存占用通常不大;Mihomo 在规则和连接较多时占用会明显上升。若旁路由同时运行这些服务,建议预留不少于 1 GB 内存;比如,配备 1 GB 内存的 OpenWrt 或 Armbian 裸机也可以作为入门方案。
八、部署建议
- 先只部署 AdGuard Home,确认局域网 DNS 下发和解析正常。
- 再加入 MosDNS,验证直连域名仍能返回真实 IP。
- 启用代理核心的 Fake-IP DNS,并用一个明确需要代理的测试域名确认返回地址位于
198.18.0.0/15(IPv6:2001:2:0:6152:0:9::/96)。 - 最后在主路由添加该网段的静态路由,验证 Fake-IP 流量确实到达代理核心。
- IPv6 应单独配置:若要启用 IPv6 分流,主路由需要支持 LAN ULA IPv6 地址和 IPv6 静态路由。YehBP 可同时部署 IPv4 与 IPv6 的 Fake-IP 分流;其当前默认 Fake IPv6 前缀为
2001:2:0:6152:0:9::/96。在主路由中将该前缀静态路由到代理主机的内网 ULA IPv6 地址;不要把 IPv6 配置默认沿用 IPv4。
九、个人部署参考
目前在用的组合是:
- 主站:UniFi UDM Beast + 飞牛(硬酷 R2 Max,主力)+ Mac mini M4 16 GB;另有一台 Armbian 备用机,运行第二套 AdGuard Home + MosDNS。
- 另外三处宽带:UniFi UDM SE / UCG Ultra / UX7 + 网心云 OECT(RK3566,Armbian / 飞牛)。
这几年来硬件不断增减,才逐渐形成现在的配置;例如一年前主力还是群晖 RS1221+。不过整体模式已经稳定运行多年。
实际使用中,备用 DNS 主要用于覆盖主力 NAS 重启的短暂窗口。若主机本身足够稳定,是否部署备用节点应按自己的可用性要求决定;例如另外三处宽带没有备用 DNS,运行也很稳定。
另外,4 处宽带还组建了 SD-WAN,并将 AI 流量统一汇聚到主站出口,具体架构可参考:多站点 Homelab:SD-WAN 组网 + 统一 AI 出口。
方案有了,怎么部署最方便?
早期部署需要手动敲命令。近两年前,我开始借助 AI 将流程做成快捷部署工具,并在持续的实际部署中测试边界条件、修复问题;现在终于可以放出来了。
Yeh Bypass Gateway,简称 yehbp,是一套一键部署与菜单化管理工具。
支持群晖、飞牛、Armbian 等环境。
从百元网心云到万元群晖 / Mac,总能选到合适的,配合 AI 食用更佳。

十、外出场景的一体化设备
外出时,同样可以采用本文的 DNS 分流、Fake-IP 和静态路由方案。基于 OpenWrt 的 CPE,例如 GL.iNet Mudi 7 一类产品,可以把蜂窝网络、主路由、AdGuard Home / MosDNS、Mihomo 以及 Wi-Fi AP 集成在一台设备中。网络功能被合并部署,但分流原理不变。