这里的“全局”是什么意思
我没有把全屋主网络都交给代理插件,而是给需要代理的设备建立了一个独立出口:连接 MT3000 专用 Wi-Fi 或 LAN 的设备,由路由器统一处理 DNS、路由与代理;没有连接它的 NAS、电视、PS5 和 Home Assistant 继续走稳定主网。
因此本文中的“全局代理”是一个有边界的定义:
对代理子网内的客户端统一生效,而不是强迫整个家庭网络共享同一个故障域。
为什么选择 MT3000
GL.iNet Beryl AX(GL-MT3000)是带独立 WAN/LAN 端口的 Wi-Fi 6 路由器。官方规格包括 2.5Gbps WAN、1Gbps LAN、512MB DDR4 和 256MB NAND,详见 GL-MT3000 产品页。
与树莓派单网口相比,它最重要的优势不是跑分,而是角色清楚:
1 | WAN:从家庭主网取得地址 |
NAT、防火墙、DHCP 和无线接入都落在专门的路由器硬件上,不再需要把以太网、Wi-Fi、桥接和单臂路由拼成一个脆弱拓扑。
最终拓扑
下面使用示例网段,不是实际家庭地址:
1 | 主路由 10.10.0.1/24 |
这个结构的直接收益是:
- 代理规则或 DNS 故障只影响 10.20.0.0/24。
- 主网设备访问 NAS、投屏和游戏联机不多一层 NAT。
- 客户端不再分别配置浏览器、Git、pip、Docker 和应用代理。
- 需要切换网络时,连接不同 SSID 即可表达意图。
为什么体感比电脑端系统代理稳定
不开 TUN 时,Windows 系统代理更像一个可选入口:愿意读取系统代理的应用会使用它,直接创建 socket、使用自带下载器或独立网络栈的程序则可能绕开。IPv4、IPv6、QUIC、应用自带 DNS 也会增加判断复杂度。
路由器级方案把控制点上移到默认网关:
1 | 客户端 |
不过“经过网关”不自动等于“所有协议都正确代理”。IPv6 默认路由、UDP/QUIC、DNS 加密和硬件流量卸载仍可能改变实际路径。正确做法是观察,而不是看到插件面板显示绿色就宣布完成。
配置时先做最小闭环
我采用的顺序是:
- 先让 MT3000 在 Router 模式下正常 NAT 上网。
- 确认 WAN、LAN、DHCP 和独立 SSID 工作正常。
- 再安装或启用代理组件,并只应用于代理子网。
- DNS 统一由 MT3000 下发,避免客户端同时使用多个口径。
- 明确 IPv6 策略:要么完整接管并验证,要么在代理子网暂不下发;不要只改一个
ipv6: true/false就推断全部流量路径。 - 每次修改一项,保留能够进入管理页和恢复配置的通道。
本文不固定某个 OpenClash、Mihomo、sing-box 或固件版本的按钮路径,因为这些界面和内核迭代很快。安装时应以当前固件和项目官方说明为准。
如何证明代理真的生效
我会从四个层面验收:
地址与路由
1 | ipconfig /all |
客户端应从 MT3000 获取地址、默认网关和预期 DNS。
DNS
1 | Resolve-DnsName example.com |
检查请求由谁响应,并对比代理启用前后的结果。仅靠浏览器页面是否打开无法证明 DNS 路径。
连接
1 | Get-NetTCPConnection -State Established | |
结合路由器连接日志,确认实际应用流量是否进入规则系统;不要打印或公开完整家庭流量日志。
故障隔离
主动停止代理组件,确认:
- 代理子网按预期失去代理能力或回退。
- 主网 NAS、Home Assistant、电视和游戏机不受影响。
- 能够通过管理页恢复组件,而不需要重置全屋网络。
最终得到的收益
这次升级最有价值的不是“把代理放进路由器”,而是把主网稳定性与实验出口拆开。客户端保持干净,代理策略集中管理,同时任何一次规则更新都不会让全家一起参加排障。