常见需求:手上有一台线路好但 IP 不干净的中转,和一台原生 IP、直连却绕远的落地。想让流量先走中转再到落地,两跳串成一条链。mihomo 提供两种写法,用途略有不同。

写法一:relay 分组

最直观的一种,在 proxy-groups 里建一个 relay 类型的组,按顺序列出要串的节点:

proxy-groups:
  - name: Chain
    type: relay
    proxies:
      - Transit-HK
      - Landing-JP

流量顺序就是列表顺序:本机 → Transit-HK → Landing-JP → 目标站点。规则里把出口指向 Chain 即可,其它什么都不用改。

relay 组里放的必须是具体节点,不是别的分组。想让某一跳可切换,用下面的 dialer-proxy 写法。

合作推荐 订阅链接从哪来? 本站合作机场注册即送 1GB 香港高速体验流量,可直接一键导入。 获取高速节点

写法二:节点级的 dialer-proxy

Clash 配置文件中 proxies、proxy-groups、rules 三个段落的结构示意
链式代理改的是 proxies 和 proxy-groups 两段,规则那边不用动

更灵活的做法是在落地节点上加一个 dialer-proxy 字段,声明「这个节点的出站连接先经过谁」:

proxies:
  - name: Landing-JP
    type: vless
    server: jp.example.com
    port: 443
    dialer-proxy: Transit

这里的 Transit 可以是一个节点名,也可以是一个分组名。写成分组名时,中转那一跳就能在组里自由切换,而落地保持不变——这是 relay 做不到的。

代价要算清楚

  • 延迟是加法:两跳的 RTT 直接相加,链越长越慢。测速页面显示的是到落地的整条链路延迟,别拿它跟单跳节点比。
  • 带宽取瓶颈:整条链的速度等于最慢那一跳,中转限速 20 Mbps,落地再快也是 20。
  • 可用性是乘法:任何一跳挂掉整条链就断。
  • UDP 要每跳都支持:有一跳不转发 UDP,整条链的 UDP 就没了。游戏场景先看UDP 与游戏优化

所以链式代理不是加速手段。只有当中转确实优化了跨境那一段(比如 IPLC、BGP 中转),叠加起来才可能比直连落地快;否则多一跳就是纯亏。

确认链路真的生效

  1. 先分别测两跳:把 Transit 和 Landing 各自设为出口,确认单独都能连通。跳过这步,出问题时你分不清是哪一段坏了。
  2. 串好之后打开「连接」页面,点开任意一条连接看链路信息,应该能看到两个节点名依次出现。
  3. 命令行 curl ip.sb,返回的应该是落地节点的 IP,不是中转的。

只想给特定网站走链式、其它照常,在规则里单独指向这个组就行,写法见自定义规则大全。分组类型本身的区别,参考配置文件结构详解