技术笔记:利用 Clash Verge 接管多个自研代理客户端

场景描述

目前不少代理服务商(机场)为了规避风险或提供所谓“定制化服务”,不再直接提供通用的 Clash 订阅链接,而是强制使用其自研客户端。

怎么说呢,我可以理解,但很难接受,自研客户端可以放飞自我,用各种奇技淫巧去绕过运营商层面的封禁屏蔽,但是在某些大型会议期间,可能机场的稳定性统一都会变差,这时候能随时切换就很舒服,对于习惯了统一收口管理流量的开发者来说,在多个自研客户端之间切换非常低效。

本文记录如何通过配置 Clash Verge,将本地多个 SOCKS5 端口整合,实现统一的分流与调度。

核心思路:本地 Proxy Chaining

自研客户端在后台运行时,本质上是在 127.0.0.1 上开启了一个代理端口。我们可以通过 Clash 配置文件,将这些端口定义为 本地节点。

1. 配置逻辑(YAML 结构)

在 Clash Verge 中编辑你的配置文件(或通过 Merge 脚本注入),核心配置如下:

proxies:
  - name: "Provider_A"
    type: socks5
    server: 127.0.0.1
    port: 6666  # 对应自研客户端A的本地端口

  - name: "Provider_B"
    type: socks5
    server: 127.0.0.1
    port: 6667  # 对应自研客户端B的本地端口
    
    
# 策略组,这里设置的是自动负载的
proxy-groups:
  - name: "Auto_Load_Balance"
    type: load-balance
    # 延迟测试地址,返回204表示连通性正常
    url: 'http://www.gstatic.com/generate_204'
    interval: 300
    proxies:
      - "Provider_A"
      - "Provider_B"

# 规则路由
rules:
  # 将全局匹配(或特定规则)指向你定义的策略组
  - MATCH, Auto_Load_Balance

2. 关于 clash-verge.yaml 的避坑说明

新手常犯的错误是直接去修改安装目录或 AppData 下的 clash-verge.yaml。

原因:该文件是 Clash Verge 的运行时生成的快照,每次启动或切换 Profile 时都会被覆盖。

正确做法:在订阅界面新建一个Local订阅文件,然后将上面的yaml配置填进去

3. 常见报错排查

为什么 UI 界面没有选项? 缩进错误:YAML 对空格极其敏感,确保 proxy-groups 与 proxies 同级缩进。

未激活配置:修改完 YAML 后,必须在 Profiles 页面重新点击 Use 才能触发内核重新加载。

总结

这种“收口”方式的好处在于:你可以利用 Clash 强大的 rules 分流功能(如域名分流、进程分流),去驱动那些原本功能单一的自研客户端。你只需要保证那些自研端在后台挂着,所有的流量管控都在 Clash Verge 这一个出口完成。

另外

顺带安利2个好用的东西

SwitchyOmega chrome系浏览器代理切换插件

Proxifier win/mac下可以让不支持配置代理的软件也能走代理