Clash链式代理配置
前置条件:本文需要 Clash Verge Rev(基于 Clash.Meta / Mihomo 内核)。
dialer-proxy字段是 Clash.Meta 专属特性,原版 Clash 及其他内核不支持。
1. 什么是链式代理
链式代理(Proxy Chain)指流量依次经过多个代理节点,最终从末端节点出口。典型场景:本机 → 中转节点(机场) → 落地节点(静态住宅 IP),这样既能利用机场线路的稳定性,又能获得住宅 IP 的「干净」出口。(Claude Code: ???)
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#3B82F6', 'primaryTextColor': '#1E3A5F', 'primaryBorderColor': '#2563EB', 'lineColor': '#60A5FA', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart LR
A(["本机"]) -->|"加密隧道"| B["中转节点"]
B -->|"SOCKS5"| C["落地节点"]
C -->|"目标请求"| D(["目标网站"])
classDef primary fill:#3B82F6,stroke:#2563EB,color:#fff
classDef success fill:#10B981,stroke:#059669,color:#fff
classDef warning fill:#F59E0B,stroke:#D97706,color:#fff
class A primary
class B warning
class C success
class D primary中转节点由机场订阅提供,落地节点是购买的静态住宅 IP。Clash.Meta 通过落地节点上的 dialer-proxy 字段将两者串联:本机先通过加密隧道连到中转节点,再由中转节点代表本机发起对落地节点的 SOCKS5 连接,流量链路由内核自动编排,无需在中转节点上做任何配置。
2. 购买静态住宅 IP
这里使用 Webshare 的静态住宅代理服务。
购买后在控制台获取代理地址、端口、用户名和密码:



- 可以买 Private,共享人数少一点。
- 刷新 IP:ASN 选择 RCN 能刷出来纯净度高一点的 IP。
3. Clash Verge Rev 脚本配置
在 Clash Verge Rev 的「脚本」功能中添加以下 JavaScript 代码。脚本会自动向现有订阅中注入链式代理组,无需手动修改订阅配置。
1 | // 链式代理组名称 |
脚本引用自:https://linux.do/t/topic/953740
3.1 使用步骤
- 在「中转节点选择」组里选一个机场节点作为中转
- 在「链式代理」组里选一个落地节点(如有多个住宅 IP)
- 在「节点选择」等常规代理组中,切换到「链式代理」即可启用链路
3.2 脚本合并
如果已有全局脚本在使用,可以通过「套娃」方式合并:把旧脚本的 main 函数重命名,在新脚本的 main 中先调用旧函数,再执行新逻辑。
1 | /* 新脚本 */ |
操作要点:
- 找到原脚本
function main(config, profileName),加前缀重命名(如xxx_main) - 新脚本
main开头调用重命名后的函数 - 将新脚本全局变量移到
main函数内部,避免命名冲突
4. 延迟影响
链式代理会引入额外的往返延迟(RTT)。最终延迟约等于「本机到中转节点延迟」加上「中转节点到落地节点延迟」之和,通常比直连高 50~200 ms。选择地理位置合适的中转节点可以有效控制叠加损耗。
5. 验证
配置完成后,通过以下两种方式确认链路是否生效:
1. 检查出口 IP
访问以下站点,确认显示的 IP 为购买的住宅 IP:
2. 在 Clash 面板确认双跳链路
打开 Clash Verge Rev 的「连接」(Connections)面板,发起一个请求后查看连接详情,Chains 字段应显示两跳节点,例如:
1 | 🐺家宽-xxxxxxx → 🐶链式代理中转节点选择 → <机场节点名> |
如果 Chains 只显示一个节点,说明 dialer-proxy 未生效,需排查代理组名称是否与脚本中定义的完全一致。
6. 故障排查
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 出口 IP 未变为住宅 IP | 未切换到「链式代理」组 | 检查「节点选择」等顶层组是否已选择「链式代理」 |
| Connections 面板 Chains 只有一跳 | dialer-proxy 名称与代理组名称不匹配 | 对比脚本中 dialerProxyName 和实际代理组名,注意 emoji 和空格 |
| 落地节点连接失败 | SOCKS5 认证信息错误或端口不通 | 用 curl -x socks5h://user:pass@host:port https://ip.sb 直接测试落地节点连通性 |
| 中转节点选择组为空 | include-all 未生效 | 确认 Clash Verge Rev 版本支持 include-all,升级到最新版 |