A glowing decorative lamp with a smaller light beside it.

折腾了大半年的家庭网络,最终跑通了一套多网关冗余架构。这篇文章分享整体设计思路,适合有一定折腾经验、想把网络做得更稳定的朋友。

为什么需要多网关

单网关最大的问题是单点故障:VPS 被封、线路抖动、机器宕机,整个网络就断了。

多网关的核心价值:

  1. 线路冗余:美国 / 香港 / 日本多个出口,自动选最快的
  2. 流量分离:不同流量走不同出口,既省流量又保速度
  3. 故障自动切换:某条线路挂了,其他线路自动顶上,用户无感知

整体架构

家庭设备
    ↓
OpenWrt 主路由(DNS 分流 → dnsmasq)
    ↓
mihomo 网关(分流规则 → 策略组)
    ↓
多个 VPS 出口(US / HK / JP)
    ↓
目标网站

关键组件:

  • 主路由:OpenWrt,负责 DNS 劫持和流量导入 mihomo
  • mihomo 节点:运行在独立机器上,处理代理和分流逻辑
  • VPS 出口:推荐 DMIT,香港 / 美国节点延迟稳定,支持 Xray + Hysteria2

mihomo 分流规则设计

策略组分层

proxy-groups:
  # 手动选择组(紧急备用)
  - name: "手动选择"
    type: select
    
  # 自动选速最快节点
  - name: "自动选择"
    type: url-test
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    
  # 各地区组
  - name: "🇺🇸 美国"
    type: url-test
    filter: "美国|US"
    
  - name: "🇭🇰 香港"
    type: url-test
    filter: "香港|HK"
    
  # 分流决策组
  - name: "国内直连"
    type: select
    proxies: [DIRECT]
    
  - name: "AI 服务"
    type: select
    proxies: ["🇺🇸 美国", "自动选择"]

规则优先级

mihomo 规则从上到下匹配,顺序很重要:

rules:
  # 本地 / 局域网直连
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  
  # AI 服务走美国
  - DOMAIN-SUFFIX,openai.com,AI 服务
  - DOMAIN-SUFFIX,anthropic.com,AI 服务
  - DOMAIN-SUFFIX,claude.ai,AI 服务
  
  # 国内主要域名直连(减少延迟)
  - GEOSITE,cn,国内直连
  - GEOIP,CN,国内直连
  
  # 其余走自动选择
  - MATCH,自动选择

DNS 防污染

这是最容易出问题的地方。架构:

设备查询 DNS
    → dnsmasq(本地缓存 + 分流判断)
        → 国内域名 → 114.114.114.114(直连)
        → 境外域名 → mihomo 的 DNS(通过代理查询)

核心是避免国内 DNS 污染境外域名解析。

VPS 选择建议

用过多家,目前 DMIT 是性价比最高的:

机房延迟(广州)特点
香港20-40ms最快,适合低延迟需求
美国洛杉矶150-180msCN2 GIA 优化,稳定
日本东京60-90ms备用,价格便宜

常见问题

Q: 节点全部超时怎么办?
A: 先检查 VPS 是否能 ping 通(排除封锁),再检查 mihomo 配置语法。

Q: 国内网站变慢了?
A: 检查 GEOSITE/GEOIP 规则是否生效,可能是 DNS 查询走了代理。

Q: 如何监控各节点延迟?
A: mihomo 有内置 API,可以对接 Grafana 面板实时监控。


有问题欢迎在 Telegram 或 X 找我交流。

延伸阅读:


📷 封面图 · Flux Schnell AI 生成 · panshi.io 品牌风格