Skip to content

路由器集成指南

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)

工作流程

  1. 设备发起 DNS 请求 → 主路由转发到 MSM (192.168.1.2:53)
  2. MosDNS 处理 DNS 请求:
    • 国内域名 → 返回真实 IP → 设备直连
    • 国外域名 → 返回 FakeIP (28.0.0.0/8)
  3. 设备访问 FakeIP → 主路由根据静态路由转发到 MSM
  4. MSM 检查设备 IP:
    • 在白名单 → SingBox/Mihomo 拦截并代理
    • 不在白名单 → 直接放行(实际无法访问,因为 FakeIP 不可达)
  5. 代理服务器 → 访问目标网站 → 返回结果

设备控制

MSM 通过 IP 白名单控制哪些设备走代理:

白名单配置

在 MSM 管理界面中配置设备白名单:

  1. 进入 设备管理 页面
  2. 添加需要走代理的设备 IP
  3. 保存配置

示例

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. 如何测试配置是否成功?

  1. 测试 DNS: 在设备上执行 nslookup google.com,应该返回 28.0.0.0/8 网段的 IP
  2. 测试代理: 在白名单设备上访问 Google,应该能够正常访问
  3. 测试直连: 在非白名单设备上访问 Google,应该无法访问
  4. 测试国内: 访问百度等国内网站,应该正常访问

5. MSM 故障时会影响上网吗?

如果配置了故障自动切换:

  • MSM 故障时,路由器自动切换到备用 DNS
  • 所有设备恢复正常上网(但无法使用代理)
  • MSM 恢复后,自动切回 MSM DNS

如果没有配置故障自动切换:

  • MSM 故障时,所有设备无法解析 DNS
  • 需要手动修改路由器 DNS 设置

建议: 配置故障自动切换,提高网络稳定性。

下一步

选择你的路由器系统,查看详细配置教程:

或者查看:

MSM - 统一管理平台