Windows 上 Clash Meta 按进程分流:PROCESS-NAME 规则写法(2026)

很多 Windows 用户装上 Clash 后最大的不爽,并不是「会不会导入订阅」,而是不想所有软件都走代理:希望办公套件、网银或某款游戏永远直连,同时浏览器、开发工具或特定客户端稳定走代理。只靠域名规则有时做不到——同一台机器上多个程序访问相近的 CDN,或根本不走系统代理。在 Clash MetaMihomo 系内核)里,按进程分流通常用 PROCESS-NAME可执行文件名写进 YAMLrules 段,再配合规则顺序与「流量有没有真正进内核」。本文与泛泛的自定义规则教程互补,专门面向「搜进程分流PROCESS-NAME、按 exe 分流」这一类操作型需求,并和 UWP 商店应用的环回豁免场景区分开。请仅在合法合规前提下使用。

PROCESS-NAME 解决的是什么问题

DOMAINIP-CIDR 等规则回答的是「这个目标是谁」;PROCESS-NAME 回答的是「这一波连接是谁发起的」。当你明确知道某一个 Windows 程序应该始终直连或始终走某个代理组,而它又访问大量分散域名时,用进程维度一刀切往往比穷举域名更省事,也比反复切换全局开关更符合直觉。

需要心里有数的是:Clash Meta 匹配的是进程映像文件名(例如 chrome.exe),不是窗口标题,也不是快捷方式显示名。多个版本或路径下同名的 exe 都会命中同一条规则;若你需要更细粒度,只能查阅当前内核版本文档是否提供按路径或其它条件的扩展规则类型,并把实验结论写进自己的运维备注。

前置条件:内核、模式与「流量进没进 Clash」

PROCESS-NAME 属于 Meta 系能力:请确认客户端使用的是 MihomoClash Meta 内核而不是过旧的闭源分支。仅勾选「系统代理」时,大量桌面程序会跟随;但有些游戏启动器、独立运行时或自定义网络栈仍可能绕过系统代理,此时你在 rules 里写得再漂亮,连接也不会以「可被内核分类」的形式出现。

实践中最稳的路径往往是:在理解风险的前提下开启 TUN(虚拟网卡/透明接管一类能力),让本来不认系统代理的流量也进入内核;具体行为与 DNS、sniffing 等选项强相关,可对照站内TUN 模式深度解析嗅探与分流例外两文,避免「进程规则写了却永远匹配不到」的假阳性。若你尚未在 Windows 11 上完成首次安装与模式选择,可先过一遍Clash Verge Rev 首次配置,再回来写 PROCESS-NAME

如何确认要写进 YAML 的进程名

最省事的做法通常是打开「任务管理器」,在「详细信息」选项卡查看「名称」列:那里显示的就是常见的 xxx.exe 字符串。若游戏或启动器会拉起子进程,必须在「发起连接的那个 exe」上写规则——有些平台用 launcher.exe 做壳,真正联网的是另一个可执行文件;这类情况需要你在「玩游戏的同时」看一眼列表,或用资源监视器按网络活动排序核对。

大小写在实际环境里往往不成为障碍,但仍建议与任务管理器显示保持一致,减少心理负担。写完规则后,务必打开客户端的连接日志,确认命中行里出现的进程名与你写的是同一个对象;这是区分「规则写错」与「流量没进 Clash」最快的方法。

YAML 里 PROCESS-NAME 的基本句法

每条规则遵循「类型, 参数, 策略」这类三部曲;右侧的策略必须是你在 proxy-groups 里定义过的代理组名称,或 DIRECTREJECT 等特殊值。若你对组命名还不熟,请先读代理组完全指南,否则容易出现「规则指向不存在的名字、配置无法加载」这类硬错误。

rules 从上到下匹配,先命中先生效。因此请把更具体的 PROCESS-NAME 段落在更宽泛的 GEOIP、大段 RULE-SET 或最后的 MATCH 之前;否则你会看到「明明写了进程直连,日志里却仍是全局出口」——多半是前面的规则已经抢先匹配。

# Example: proxy-group names must match your profile
proxy-groups:
  - name: "🌐 默认代理"
    type: select
    proxies:
      - PROXY_NODE_A
      - DIRECT
  - name: "🎮 游戏"
    type: select
    proxies:
      - PROXY_NODE_B
      - DIRECT

rules:
  # Force a specific game to use a dedicated group (low latency pool, etc.)
  - PROCESS-NAME,GameClient.exe,🎮 游戏
  # Keep a heavy launcher on direct uplink (CDN / P2P friendly)
  - PROCESS-NAME,HeavyLauncher.exe,DIRECT
  # Browser stays on your general exit
  - PROCESS-NAME,chrome.exe,🌐 默认代理
  - MATCH,🌐 默认代理

以上是结构示意:组名、节点与进程名都要换成你自己机器上的真实值。若订阅远程规则已经包含大量域名集,仍可以把 PROCESS-NAME 放在远程规则之前(取决于客户端的「覆写/合并顺序」能力),以保证意图不被远处的 MATCH 吞掉——这与自定义规则教程里强调的合并顺序完全一致。

常见配方:游戏直连、浏览器与其它软件走代理

竞技或下载体量大的游戏,往往更在意链路稳定与运营商 QoS,用户会希望直连;而浏览器、IDE、同步盘仍走代理。做法就是:为游戏主进程写 PROCESS-NAME,...,DIRECT 或指向只含 DIRECT 的专用组,再把日常软件的进程名指向你的默认出口组。若游戏还会调用独立的更新服务进程,记得一并列出,否则会出现「主程序直连了,后台更新却仍走代理」这种割裂体验。

反过来,也可能存在「只想让某个冷门工具走代理,其余一切直连」的需求:这时应把该工具的 PROCESS-NAME 写在很靠前的位置,并确保后面的兜底策略与你的预期一致,而不是依赖一个过宽的 MATCH。平台相关的下载与 CDN 讨论可继续参考Steam 与 Epic 分流一文,但仍要以你当前游戏真实进程名为准。

客户端侧:覆写、合并与 GUI 里容易忽略的一处勾选

多数现代 GUI(例如 Clash Verge Rev)会把「订阅配置」和「本地覆写」分层管理。你只改远程文件往往会在一次刷新后被冲掉;应把 PROCESS-NAME 片段放在持久层,或在合并预览里确认它出现在最终生效的 rules 中。某些选项会改变「系统代理TUN/仅核心」的工作模式——模式不对时,进程名再正确也无意义。

如果你在用的是 Microsoft Store 安装的应用,除了进程名,还常被环回隔离卡住:这与本文主题不同,需要按UWP 环回专文处理,而不是反复改 YAML

排错清单:写了 PROCESS-NAME 仍不对时

  • 内核是否 Meta:旧内核或极端精简发行版可能直接忽略此类规则。
  • 进程名是否写对:日志里看到的名字才是真理,任务管理器与你猜的要对一下。
  • 是否被前序规则提前匹配:PROCESS-NAME 整体上移,或暂时注释大段远程规则做对照。
  • 流量是否绕过代理/未进 TUN:仅「系统代理」并不包打天下;必要时按上文开启接管模式并复查 DNS。
  • 多进程与启动器:只写壳进程不写子进程会导致「偶发有效、多数无效」。

合规与安全提醒

请在你有权使用的网络环境中配置代理与路由;遵守当地法规、单位 IT 政策及服务条款。本文仅解释规则语法与排错思路,不构成对任何上游订阅商或具体节点的推荐。修改网络栈前建议备份可恢复的配置文件。

常见问题

能写通配符或路径吗?

PROCESS-NAME 通常只接受可执行文件名。若你需要路径级区分,请查阅你所用 Mihomo 版本的官方文档是否提供额外规则类型,并在测试环境验证后再上线。

和「按域名写 Steam/Epic」有什么区别?

按域名适合平台CDN 固定、可穷举的情况;按进程适合「我不管它连谁,只要这个 exe 永远直连/永远走某组」的强意图。两者可以混用,但务必处理好先后顺序。

会不会拖慢匹配性能?

少数几条进程规则的开销通常可忽略;若你把数以千计的域名集与进程规则堆在一起,更应关心可读性与合并来源是否可信,而不是恐慌性能——真要规模化管理,用 RULE-SET 分包是更干净的方向。

小结

Windows 上不想「一把梭全局代理」,又嫌按域名维护太碎时,Clash MetaPROCESS-NAME 把「谁发的连接」映射到你命名好的代理组DIRECT,是实操里很常见的一种折中。它的前提是:Mihomo 内核、YAML 写法正确、rules 顺序没有被远程配置盖掉,以及流量确实走了内核能接管的路径(常涉及 TUN 或与 DNS/嗅探相关的选项)。与 UWP、游戏平台 CDN 专文配合阅读,可以覆盖大部分桌面场景。

如果你希望使用维护积极的客户端并获得各平台安装包,可从本站下载页入手,再结合使用教程把订阅、模式与规则合成一条稳定工作流。把意图写进配置,比来回切换单一 VPN 开关更利于长期排错。→ 立即免费下载 Clash,开启流畅上网新体验