Skip to content

本次 Clash 配置需求整理

你的目标

你在使用 Clash Verge Rev,并且有多个订阅。

你希望做到的是:

  1. 不去每个订阅里分别手动写规则。
  2. 用一个“全局”的方式,对所有订阅统一生效。
  3. 既保留订阅原本的内容,又把你自己的节点、代理组、规则追加进去。
  4. 让你自己的规则排在前面,优先生效。

为什么不用“编辑规则”

编辑规则 适合单个订阅做精细化调整。

但如果你有多个订阅,那么每个订阅都要点进去配一遍,维护起来很麻烦。

所以这次选择的是:

  • 全局扩展脚本

它的好处是:

  • 对所有订阅统一生效
  • 更新订阅后仍然保留
  • 可以做到“保留原配置 + 插入个人配置”
  • 比单纯的 YAML 覆写更灵活

这次追加了什么

1. 追加一个节点

需求原文:

text
socks5://127.0.0.1:1080#公司内网

脚本里会把它转换成 Clash 能识别的节点对象:

  • 名称:公司内网
  • 类型:socks5
  • 地址:127.0.0.1
  • 端口:1080

这个节点通常表示:

  • 本机 127.0.0.1
  • 本地已经有一个 SOCKS5 代理在 1080 端口监听

2. 追加一个代理组

需求原文:

text
company
- 公司内网
- DIRECT

脚本里会新增一个叫 companyselect 代理组。

它的意思是:

  • 访问命中 company 规则的流量
  • 交给 company 这个代理组处理
  • 而这个组里有两个可选项:
    • 公司内网
    • DIRECT

所以你可以在 Clash 界面里手动切换:

  • 走公司内网
  • 或者直接直连

3. 追加一组前置规则

你给出的规则是:

yaml
prepend:
  - DOMAIN-SUFFIX,company.com,company
  - DOMAIN-SUFFIX,company.cn,company
  - DOMAIN-SUFFIX,company-internal.com,company
  - IP-CIDR,10.x.x.x/32,company,no-resolve
  - IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,company,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - DST-PORT,39000,company
  - DOMAIN,ssh.jumpserver.example.com,company

脚本会把这些规则插到原订阅规则前面。

这样做的结果是:

  • 先匹配你的个人规则
  • 没匹配到时,再继续走订阅原来的规则

这就是“前置规则”的意思。

“保留原来的,又合并个人配置”到底是什么意思

这次脚本不是替换整份订阅,而是:

  1. 先拿到订阅原本的配置
  2. 再往里面加你的节点
  3. 再往里面加你的代理组
  4. 再把你的规则插到最前面
  5. 最后把修改后的完整配置交给 Clash Verge Rev 使用

所以:

  • 订阅原本的节点还在
  • 订阅原本的代理组还在
  • 订阅原本的规则还在

只是额外多了你自己的内容。

脚本里额外做的保护

为了避免每次更新订阅都重复追加同样的内容,脚本做了几层处理:

1. 节点去重

如果已经存在一个名字叫 公司内网 的节点,就不再重复新增。

2. 代理组去重

如果已经存在一个叫 company 的代理组:

  • 不会再创建第二个同名组
  • 而是尽量把 公司内网DIRECT 合并到这个已有组里

3. 规则去重

如果规则已经存在,就不会重复塞进去。

规则里的几个关键点

company

这不是节点名,而是“代理组名”。

规则里写:

text
DOMAIN-SUFFIX,company.com,company

意思是:

  • 如果访问目标域名匹配 company.com
  • 那么就把流量交给 company 这个代理组处理

DIRECT

意思是直连,不经过代理。

no-resolve

用于部分 IP-CIDR 规则,表示不再额外做 DNS 解析。

一般用于:

  • 已经明确是 IP 段
  • 不希望多做一次域名解析

当前规则中一个值得你确认的地方

你给的规则里,内网 IP 的走向并不完全一致:

text
10.0.0.0/8 -> company
172.16.0.0/12 -> DIRECT
192.168.0.0/16 -> DIRECT
100.64.0.0/10 -> DIRECT

这意味着:

  • 10.x.x.x 的流量会进 company 代理组
  • 172.16.x.x192.168.x.x100.64.x.x 会直接直连

这不是错误,只是策略选择。

如果你的目标是“所有公司内网地址都统一走公司内网代理”,那后面可以再改。

使用步骤

  1. 打开 Clash Verge Rev
  2. 找到 全局扩展脚本
  3. global-extend-script-company.js 的全部内容粘进去
  4. 保存
  5. 更新订阅,或者重新应用配置
  6. 检查是否出现:
    • 节点 公司内网
    • 代理组 company
    • 对应规则生效

后续可以继续优化的方向

如果你后面还想继续增强,这个脚本还可以继续做这些事:

  1. 只对指定订阅名生效
  2. 自动把 company 塞进某些总代理组
  3. 按网络环境自动切换策略
  4. 把规则拆成“公司内网规则”和“通用规则”
  5. 把组名、节点名、IP 段提到配置区,方便以后改