文章详情

规则、全局、系统代理与 TUN 有什么区别?一张图理清两层设置

“已经开了全局,为什么某个程序还是没有走代理?”这个问题经常不是节点速度造成的,而是把流量入口和核心分流混在一起理解。先看请求有没有进入客户端,再看进入之后走了什么出口,答案就清楚了。

两层设置,解决两类问题

系统代理和 TUN 主要解决“哪些请求进入客户端”;规则、全局与直连主要解决“进入客户端后如何处理请求”。它们不在同一层,因此可以组合使用。

设置 所处层面 主要作用 需要留意
系统代理 流量入口 将遵循系统代理的应用请求交给本地入口 不遵循该设置的应用可能不受影响
TUN 流量入口 通过虚拟网络接口和路由接收请求 覆盖范围依赖路由、排除项及系统权限
规则模式 核心分流 按规则选择直连、代理、拒绝等策略 规则与策略组都需要正确
全局模式 核心分流 采用全局策略组处理进入核心的请求 全局组仍可能被选为直连或其他策略
直连模式 核心分流 进入核心的请求使用直连出口 不等于关闭客户端或清除系统代理

mihomo 的全局配置文档列出了 rule、global 和 direct;TUN 则在入站配置中单独设置。参考:全局配置;TUN 配置

代理入口与核心分流两层关系图

为什么“全局”不一定覆盖所有应用

如果某个应用完全没有将请求交给系统代理入口,那么客户端里的全局模式没有机会处理它。浏览器正常而某个桌面程序失败,优先看应用是否有独立代理设置、连接记录里是否出现它的请求。

此时可以先使用该应用明确支持的代理方式;确实需要更广的系统流量接管时,再按项目说明评估 TUN。开启 TUN 之后,也要查看路由排除项,不能把它理解为绝对覆盖所有连接。

同样,TUN 只是接收方式,不自动决定每个请求都走远端节点。“TUN 加规则模式”可以让已接收的请求按规则分别走不同出口。

规则模式是怎样判断请求的

规则可能按域名、IP、进程或规则集合匹配。mihomo 的规则按列表顺序从上到下检查,上面的规则通常具有更高优先级。参考:路由规则与优先级

例如,一个精确的域名规则应当怎样放置,需要结合配置中的广泛匹配规则判断。最终命中的策略组也要有正确节点;只修正域名规则但策略组仍选着失效节点,问题不会消失。

新手修改规则前,先记录目标域名、当前命中规则和实际出口。保留原配置,避免直接复制陌生的大型规则文件覆盖服务商配置。

怎样用全局模式作一次有效对照

当请求已经进入核心,且规则模式下失败,可以做一次有边界的对照:

  1. 记录规则模式实际命中的出口。
  2. 在全局策略组选择同一个已确认可用的节点。
  3. 重新发起相同目标请求,观察结果和连接记录。
  4. 测试后恢复原模式,再检查规则与策略组。

如果两次使用的节点不同,结果变化也可能来自线路差异,不能直接判定是规则错误。即使同节点全局正常、规则失败,也仍需核对 DNS 路径和具体匹配情况,逐项定位。

日常场景怎样组合

场景 可以先尝试的组合 完成标准
浏览器为主,应用遵循系统代理 系统代理加适合用途的规则 请求和分流记录符合预期
某个应用未进入系统代理 应用自带代理或经核对的 TUN 客户端能观察到对应请求
临时检查分流问题 保持节点一致,短时全局对照 结果可复现并能解释差异
不再使用代理 正常停止入口并退出 普通联网恢复预期状态

TUN 涉及系统路由和权限,首次开启后应补测局域网设备、工作网络以及自己的常用应用。若出现问题,先停止 TUN 回到已知可用状态,再对照具体配置。

理解这两层设置之后,模式选择就不再靠猜:先确认入口,再查看规则,最后核对出口。

评论

搜索文章

正在加载搜索…