路由器集成指南
MSM 采用旁路由架构,需要在主路由器上进行简单配置即可实现全网 DNS 分流和透明代理。本文档介绍如何将 MSM 与各种路由器系统集成。
核心配置要求
无论使用哪种路由器系统,都需要配置以下两项:
1. DNS 设置
将主路由的 DNS 服务器设置为 MSM 主机的 IP 地址。
示例:
- MSM 主机 IP:
192.168.1.2 - 主路由 DNS 设置:
192.168.1.2
2. 静态路由
添加静态路由,将 FakeIP 网段(28.0.0.0/8)的流量路由到 MSM 主机。
示例:
- 目标网段:
28.0.0.0/8 - 网关:
192.168.1.2(MSM 主机 IP)
3. 可选:额外静态路由
为了确保某些服务(如 Telegram、Netflix)的 IP 段也走代理,可以添加额外的静态路由:
149.154.160.0/22 → 192.168.1.2 # Telegram
149.154.164.0/22 → 192.168.1.2 # Telegram
149.154.172.0/22 → 192.168.1.2 # Telegram
91.108.4.0/22 → 192.168.1.2 # Telegram
91.108.8.0/22 → 192.168.1.2 # Telegram
91.108.12.0/22 → 192.168.1.2 # Telegram
91.108.16.0/22 → 192.168.1.2 # Telegram
91.108.20.0/22 → 192.168.1.2 # Telegram
91.108.56.0/22 → 192.168.1.2 # Telegram
95.161.64.0/22 → 192.168.1.2 # Telegram
67.198.55.0/24 → 192.168.1.2 # Telegram
109.239.140.0/24 → 192.168.1.2 # Telegram网络拓扑示例
互联网
↓
光猫/调制解调器
↓
主路由 (192.168.1.1)
├─ DNS: 192.168.1.2
├─ 静态路由: 28.0.0.0/8 → 192.168.1.2
├─ 静态路由: Telegram IP → 192.168.1.2
│
├─ 设备 A (192.168.1.100) → 在 MSM 白名单 → 走代理
├─ 设备 B (192.168.1.101) → 不在白名单 → 直连
└─ MSM 旁路由 (192.168.1.2)
├─ MosDNS (53端口)
└─ SingBox/Mihomo (7890/7891)工作流程
- 设备发起 DNS 请求 → 主路由转发到 MSM (192.168.1.2:53)
- MosDNS 处理 DNS 请求:
- 国内域名 → 返回真实 IP → 设备直连
- 国外域名 → 返回 FakeIP (28.0.0.0/8)
- 设备访问 FakeIP → 主路由根据静态路由转发到 MSM
- MSM 检查设备 IP:
- 在白名单 → SingBox/Mihomo 拦截并代理
- 不在白名单 → 直接放行(实际无法访问,因为 FakeIP 不可达)
- 代理服务器 → 访问目标网站 → 返回结果
设备控制
MSM 通过 IP 白名单控制哪些设备走代理:
白名单配置
在 MSM 管理界面中配置设备白名单:
- 进入 设备管理 页面
- 添加需要走代理的设备 IP
- 保存配置
示例:
192.168.1.100 # 设备 A - 走代理
192.168.1.101 # 设备 B - 走代理
192.168.1.0/24 # 整个网段 - 走代理白名单文件
白名单配置保存在 MosDNS 配置目录的 client_ip.txt 文件中:
bash
# 查看白名单
cat ~/.msm/mosdns/client_ip.txt
# 编辑白名单
vi ~/.msm/mosdns/client_ip.txt故障自动切换
为了提高网络稳定性,建议在路由器上配置健康检查和自动切换:
健康检查
路由器定期检查 MSM 服务状态(如 ping 1.1.1.1):
- MSM 正常: 使用 MSM 作为 DNS
- MSM 故障: 自动切换到备用 DNS(如 223.5.5.5)
自动恢复
MSM 恢复后,路由器自动切回 MSM DNS。
实现方式
不同路由器系统的实现方式:
- RouterOS: 使用 Netwatch 功能
- 爱快: 使用健康检查功能
- OpenWrt: 使用 mwan3 或自定义脚本
- UniFi: 使用 WAN Failover 或自定义脚本
支持的路由器系统
MSM 支持所有能够配置静态路由和自定义 DNS 的路由器系统:
| 路由器系统 | 支持状态 | 配置难度 | 详细文档 |
|---|---|---|---|
| RouterOS (MikroTik) | ✅ 完整支持 | 中等 | 查看文档 |
| 爱快 (iKuai) | ✅ 完整支持 | 简单 | 查看文档 |
| OpenWrt | ✅ 完整支持 | 中等 | 查看文档 |
| UniFi (Ubiquiti) | ✅ 完整支持 | 中等 | 查看文档 |
| 梅林固件 | ✅ 完整支持 | 简单 | 参考 OpenWrt |
| pfSense/OPNsense | ✅ 完整支持 | 中等 | 参考通用配置 |
| 其他路由器 | ✅ 基本支持 | 视情况而定 | 参考通用配置 |
常见问题
1. 为什么需要静态路由?
FakeIP (28.0.0.0/8) 是虚拟 IP 地址,不存在于公网。如果不配置静态路由,设备访问 FakeIP 时会尝试通过默认网关(主路由)访问,但主路由无法路由到这个虚拟 IP,导致访问失败。
通过配置静态路由,主路由会将 FakeIP 流量转发到 MSM,MSM 再通过代理访问真实网站。
2. 为什么需要配置 DNS?
MSM 的 MosDNS 负责 DNS 分流,只有将主路由的 DNS 设置为 MSM,设备的 DNS 请求才会被 MosDNS 处理,才能实现国内外域名的智能分流。
3. 不在白名单的设备会怎样?
不在白名单的设备:
- 国内域名:正常访问(MosDNS 返回真实 IP,设备直连)
- 国外域名:无法访问(MosDNS 返回 FakeIP,但 MSM 不代理该设备的流量)
4. 如何测试配置是否成功?
- 测试 DNS: 在设备上执行
nslookup google.com,应该返回 28.0.0.0/8 网段的 IP - 测试代理: 在白名单设备上访问 Google,应该能够正常访问
- 测试直连: 在非白名单设备上访问 Google,应该无法访问
- 测试国内: 访问百度等国内网站,应该正常访问
5. MSM 故障时会影响上网吗?
如果配置了故障自动切换:
- MSM 故障时,路由器自动切换到备用 DNS
- 所有设备恢复正常上网(但无法使用代理)
- MSM 恢复后,自动切回 MSM DNS
如果没有配置故障自动切换:
- MSM 故障时,所有设备无法解析 DNS
- 需要手动修改路由器 DNS 设置
建议: 配置故障自动切换,提高网络稳定性。
下一步
选择你的路由器系统,查看详细配置教程:
- RouterOS 配置 - MikroTik 路由器
- 爱快配置 - 爱快路由器
- OpenWrt 配置 - OpenWrt/LEDE 路由器
- UniFi 配置 - Ubiquiti UniFi 路由器
或者查看: