LAB RECORD 01

先分清网络位置与运行方式

Mihomo 是由 Clash Meta 延续发展的代理内核。把它放进路由器环境时,最容易混淆的不是配置语法,而是两个不同维度:设备位于网络中的什么位置,以及内核由什么方式启动和维护。主路由、旁路由描述的是网络拓扑;内核直跑、路由插件或容器描述的是软件运行方式。它们并非互斥选项,例如旁路由上同样可以选择内核直跑。

部署前先画出最短的数据路径:终端把数据包交给哪个默认网关,DNS 查询发往哪里,流量在哪台设备进入 Mihomo,完成代理后又从哪个出口返回。只要这四个位置不清楚,后续出现网页打不开、国内站点绕远、部分设备不生效或 IPv6 绕过时,就很难判断问题属于规则、DNS 还是路由。

网络拓扑维度

  • 主路由:Mihomo 所在设备同时承担默认网关、NAT、防火墙和常见的 DHCP 服务。
  • 旁路由:Mihomo 位于主路由所在局域网的一台附加设备,只有被明确导向它的终端或流量才会经过代理。
  • 独立网关:将代理设备串联在特定子网前方,常用于给一个 VLAN、访客网络或实验网络提供统一策略。

软件运行维度

  • 路由插件:用管理界面生成配置、写入防火墙规则并管理服务。
  • 内核直跑:直接运行 Mihomo 二进制文件,自行准备配置、权限、服务与透明代理规则。
  • 容器运行:隔离依赖和文件,但仍要处理主机网络、能力权限与防火墙链路。
LAB RECORD 02

主路由部署:链路最直接,变更影响最大

主路由方案把 Mihomo 放在全网默认出口。终端通常从这台设备取得 IP 地址、默认网关和 DNS 地址,因此无需逐台设置即可纳入统一规则。透明代理入口可由 TProxy、重定向规则或 TUN 设备承接,具体选择取决于系统内核、插件实现和是否需要处理 UDP。

这类拓扑的优势是路径清楚:局域网终端先到主路由,再由规则决定直连、代理或拦截。DNS 也容易集中管理,设备分组可以结合源 IP、MAC 对应的固定租约、VLAN 或不同子网完成。对于需要长期统一管理电视、手机、电脑和游戏设备的家庭网络,主路由通常比逐台安装客户端更容易保持一致。

代价是故障半径较大。错误的防火墙规则、不可用的配置文件或 DNS 循环,可能同时影响整个局域网。升级内核时还要考虑设备架构、可执行文件权限、配置兼容性和服务重启顺序。若路由设备性能有限,加密连接、规则匹配、DNS 缓存和日志写入会共同占用 CPU 与内存,不能只依据网口标称速率判断实际代理吞吐。

适合主路由方案的条件

  1. 能够维护路由系统,并保留本地管理入口和配置回退方法。
  2. 设备 CPU 架构有对应的 Mihomo 构建版本,存储空间足够放置内核、规则集和日志。
  3. 希望大部分终端默认进入同一套分流逻辑,而不是仅让少数设备使用代理。
  4. 可以安排升级窗口,接受重启代理服务时出现短暂连接中断。
LAB RECORD 03

旁路由部署:便于试验,重点处理流量导向

旁路由通常与主路由位于同一局域网。主路由继续负责拨号、NAT 和无线接入,旁路由负责选定终端的代理与 DNS。它适合渐进部署:先让一台测试电脑使用旁路由,验证规则、订阅和 DNS 后,再逐步扩大到固定设备或独立子网。

旁路由并不会因为接入交换机就自动获得全网流量。最直接的方法是在终端上把默认网关与 DNS 指向旁路由;也可以由 DHCP 为特定设备下发不同网关,或在主路由上使用策略路由将指定源地址导向旁路由。采用哪种方式,取决于主路由是否支持静态租约、按设备下发参数以及策略路由。

单臂旁路由只有一个局域网接口,数据包从该接口进入,处理后仍从同一接口发往主路由。此时要特别关注回程路径。若终端发包经过旁路由,而响应包被主路由直接送回终端,就可能形成不对称路径。普通连接有时仍能工作,但依赖连接跟踪、透明代理或严格状态防火墙的场景可能表现异常。实际部署中常通过正确的网关规划、策略路由或必要的源地址转换保持路径一致。

旁路由常见接入方式

接入方式 控制范围 维护重点
终端手动设置网关 少量测试设备 逐台维护,移动设备切换网络后需复查
DHCP 定向下发 固定终端 确认主路由支持按设备分配网关与 DNS
主路由策略路由 设备组或子网 避免路由环路,确认返回路径和故障回退
独立 VLAN 或无线网络 完整隔离的设备组 规划跨网段访问、DNS 和防火墙放行规则

旁路由关闭 DHCP 并不是普遍规则。如果主路由统一分配地址,旁路由通常无需再开启同网段 DHCP;如果旁路由管理一个独立子网,它可以为该子网提供 DHCP。判断依据应是每个广播域只能有清晰、可控的地址分配方案,而不是机械地开关某个服务。

LAB RECORD 04

内核直跑:控制精细,系统工作需要自行补齐

内核直跑是直接下载适配 CPU 架构的 Mihomo 可执行文件,准备 YAML 配置,再使用系统服务管理器启动。它减少了图形插件对配置结构的限制,适合需要自定义规则提供器、监听端口、实验功能或自动化发布流程的用户。但内核只负责它自身的代理能力,不会自动替部署者完成所有路由系统工作。

一个可用的直跑方案至少包含五部分:配置文件与外部规则资源、持久化目录、启动服务、透明代理或 TUN 所需权限、DNS 与防火墙配合。还要安排更新与回滚,例如更新前先调用配置检查,保留上一版二进制文件,在新进程启动失败时恢复原服务。

mode: rule
allow-lan: true
bind-address: "*"
mixed-port: 7890
tproxy-port: 7893

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  nameserver:
    - 223.5.5.5
  proxy-server-nameserver:
    - 1.1.1.1

上面的片段只展示监听关系,不是一份可直接投入路由器的完整配置。代理节点、策略组、规则、规则集以及防火墙导流仍需单独定义。DNS 上游也应根据网络条件和分流目标选择。将 DNS 监听在 1053 端口时,还需要由系统 DNS 转发器把查询交给该端口,或者明确让终端访问它;仅写入配置并不会自动接管局域网的 53 端口。

直跑服务的启动顺序

  1. 确认网络接口、时间同步和配置目录已经就绪。
  2. 检查配置语法及外部资源是否可读取,避免服务反复重启。
  3. 启动 Mihomo,确认代理端口、DNS 端口和控制接口按预期监听。
  4. 再加载透明代理与策略路由规则,避免流量被送入尚未监听的端口。
  5. 停止服务时先撤销导流规则,再退出内核,减少局域网连接被黑洞化的时间。
LAB RECORD 05

DNS、透明代理与 IPv6 必须一起规划

路由器部署中,很多看似“节点不稳定”的现象实际来自 DNS 路径。终端可能把 DNS 发给主路由,主路由再转发给 Mihomo;也可能直接查询旁路由。需要确认查询链路不会形成“系统 DNS 转给 Mihomo,Mihomo 又把同一上游请求交回系统 DNS”的循环。

Mihomo 的 fake-ip 模式会从保留地址池返回映射地址,后续连接进入内核后再还原域名,这有利于按域名规则处理连接。部分局域网设备、局域网域名、时间同步服务或依赖真实地址响应的应用可能需要加入 fake-ip-filter。redir-host 模式更接近返回真实解析结果,但域名识别与缓存行为需要结合具体协议验证。两种模式没有脱离环境的绝对优劣,选择后应通过日志确认域名规则确实命中。

代理服务器域名的解析是另一个独立环节。节点主机名必须先解析,连接才能建立,因此要为这类查询准备可达的解析器。Mihomo 配置中的 proxy-server-nameserver 可用于处理代理服务器域名,降低启动阶段依赖代理链路的风险。规则提供器或订阅地址的访问也要考虑同类依赖:若获取配置必须先有代理,而代理又依赖尚未下载的配置,就会形成启动闭环。

透明代理入口怎么选

  • 显式代理端口:终端主动填写 HTTP 或 SOCKS 代理,路径容易验证,但无法覆盖不支持代理设置的应用。
  • TProxy:常用于 Linux 路由环境,可保留原始目标信息并处理 TCP、UDP,但依赖策略路由、内核模块和防火墙规则。
  • TUN 模式:由虚拟网络接口接收流量,配置思路相对统一,但要检查设备权限、路由表、DNS 劫持以及与现有 VPN 的冲突。
  • 重定向方式:常用于 TCP 导流,实现成熟,但 UDP 与原始目标处理能力取决于具体系统方案。

IPv6 不能只看 Mihomo 配置中的一个开关。只要局域网仍向终端发布 IPv6 默认路由和 DNS,终端就可能优先使用 IPv6 直连,从而绕过只处理 IPv4 的透明代理规则。需要代理 IPv6 时,应同步检查上游前缀、路由通告、防火墙、TUN 或 TProxy 支持以及规则覆盖;暂不处理时,也应明确关闭相应通告或建立可解释的直连策略,而不是让 IPv4 与 IPv6 走向不同且不可观察的路径。

LAB RECORD 06

按控制范围、维护能力和回退成本选择

选择方案时,不必先问哪一种性能最高,而应先确定需要接管多少设备、是否能够修改主路由、故障时谁需要继续联网。只给一台电视或测试电脑使用时,旁路由配合定向网关通常足够;全屋设备需要统一规则并且具备路由维护能力时,主路由更简洁;需要精确控制配置生成、服务编排和防火墙细节时,可以在前两种拓扑上采用内核直跑。

比较项 主路由 旁路由 内核直跑
默认覆盖范围 通常覆盖整个局域网 覆盖被导向旁路由的设备 取决于所在拓扑与导流规则
初次改动 涉及核心网关服务 可从少量终端开始 需自行配置服务与系统规则
故障影响 可能影响全网出口 通常局限于指定设备 取决于是否准备自动回退
配置自由度 受路由系统或插件影响 受旁路由系统实现影响 较高,可直接维护配置
适合阶段 稳定运行与统一管理 试验、分批接入与设备分组 自动化、精细调试与定制部署

部署前参数清单

  • 记录主路由、旁路由、终端和 DNS 服务的 IP 地址,避免地址冲突。
  • 确认设备 CPU 架构、可用内存、存储空间和系统使用的防火墙框架。
  • 确定 TCP、UDP、IPv4、IPv6 各自由哪种入口处理。
  • 为不应进入代理的局域网网段、管理地址和基础服务建立排除规则。
  • 给测试终端分配固定地址,便于从日志中识别连接来源。
  • 准备停止代理后恢复普通上网的操作步骤,并在正式接管前实际演练。

上线后的逐层验收

  1. 基础网络:关闭透明代理后,终端能否通过原出口正常访问局域网与互联网。
  2. DNS:检查终端实际使用的 DNS 地址、查询响应和 Mihomo DNS 日志,排除循环与超时。
  3. 流量入口:确认目标连接出现在 Mihomo 日志中,并能看到源地址、目标地址与规则命中。
  4. 策略结果:分别测试应直连、应代理和应拦截的域名,不只依赖单个测速网站判断。
  5. UDP 与 IPv6:单独验证实时通信、游戏或其他 UDP 场景,再检查 IPv6 是否遵循预定路径。
  6. 故障回退:停止 Mihomo 或提供不可用配置,验证管理入口仍可访问,网络能按预案恢复。

路由器上的 Mihomo 部署本质是一次网络路径实验。主路由方案强调统一入口,旁路由方案强调可控范围,内核直跑强调配置与系统层面的自主维护。先用一台固定终端建立可观察、可回退的最小链路,再逐步加入 DNS 接管、UDP、IPv6 和更多设备,通常比一次性接管全网更容易定位问题。

按平台选择 Clash 客户端

前往下载页查看系统要求与对应安装包,或先阅读基础配置、订阅导入和规则模式的操作步骤。