Skip to main content
  1. Blogs/
  2. 前端开发/
  3. DevOps/
  4. VPN/

Clash for Windows:公司域名要直连,用 parsers 搞定

·171 words·1 min
Table of Contents

订阅规则通常已经覆盖了大半分流场景,日常上网够用。但公司内网、OA、Git、包仓库这类域名,往往需要 直连(DIRECT)——走代理反而慢、甚至连不上。

这时很多人会先想到 mixin。实际试下来:用 mixin 塞 rules / 策略组基本无效——它更适合注入 dns 这类顶层公共属性。要给公司域名加直连,正确入口是 parsers:对着订阅做预处理,把规则插到 rules 最前面;订阅每次更新都会再跑一遍,自定义规则不会被冲掉。

为什么 mixin 搞不定,要用 parsers
#

parsersmixin
实际能干什么prepend-rules、策略组、节点等,预处理订阅配置主要覆盖/注入 dns 等公共字段
公司域名直连有效:规则能插到前面并命中无效:按 rules 思路去配,往往不生效
与订阅更新刷新时自动预处理,规则能留住不负责「给某份订阅前置分流规则」

一句话:mixin 管 DNS 这类全局偏好;分流规则、公司直连,走 parsers。

怎么配
#

  1. 打开 Clash for Windows → Profiles
  2. 在目标订阅上 右键 → 选 Parsers(也可在 Settings 里找到全局 Parsers 编辑入口)
  3. 按下面写法填入后保存,再 Update 一次该订阅

Demo:公司域名走独立策略组
#

先建一个「公司网络」策略组(默认 DIRECT),再用 prepend-rules 把公司域名指过去。reg: ".*" 表示对所有订阅都生效:

parsers:
  - reg: ".*"
    yaml:
      prepend-proxy-groups:
        - name: 🏢 公司网络
          type: select
          proxies:
            - DIRECT

      prepend-rules:
        - DOMAIN-SUFFIX,xxx.com,🏢 公司网络

xxx.com 换成真实公司域名即可;需要多个域名时,继续往 prepend-rules 里加行。

配置生效后,打开 Logs,访问公司域名时能看到走的是 🏢 公司网络[DIRECT]

日志里 RULE → DomainSuffix(...) + PROXY → 🏢 公司网络[DIRECT],就说明 parsers 预处理已经生效。

这样做的好处:规则命中后进独立策略组,平时直连;哪天公司网也要临时代理,在面板里把「🏢 公司网络」改节点就行,不用再改 parsers。

prepend-rules / prepend-proxy-groups 都会插到原配置最前面,保证优先于订阅里已有的宽规则。

若只想处理某一条订阅,把 reg 换成精确匹配即可:

parsers:
  - url: https://example.com/your-subscription.yaml
    yaml:
      # ...同上

常用 yaml 操作(顺带记一下)
#

作用
prepend-rules / append-rules规则插到前 / 后
prepend-proxies / append-proxies节点插到前 / 后
prepend-proxy-groups / append-proxy-groups策略组插到前 / 后
mix-object向外层对象合并

更复杂的逻辑可以用 code 写 JavaScript 预处理;公司域名直连这种场景,YAML 的 prepend-rules 一般就够。

个人总结
#

订阅负责「通用分流」,parsers 负责「我这台机器特有的例外」——尤其是公司域名直连。mixin 别往 rules 上硬套,它更偏 DNS 等属性;也别手改本地配置文件(下次更新订阅就没了)。用 prepend-proxy-groups + prepend-rules 顶上去,省事也稳。