有时你想按“是哪个程序”而不是“访问哪个网站”来分流:让 Telegram 永远走代理、让下载工具永远直连。PROCESS-NAME 规则就是干这个的。

写法

rules:
  - PROCESS-NAME,Telegram.exe,节点选择
  - PROCESS-NAME,qbittorrent.exe,DIRECT
  - PROCESS-NAME,steam.exe,DIRECT
  - PROCESS-NAME,WeChat.exe,DIRECT

进程名要写可执行文件全名(含 .exe),大小写不敏感。不确定进程名时,在任务管理器 → 详细信息里查看,或在 TUN 模式下直接看 Connections 页面的 Process 列。

关键前提:流量里得“带着”进程信息

Clash 是通过查询系统连接表把连接关联到进程的,这在不同接入方式下可靠性不同:

  • TUN 模式:可靠。流量在网络层被接管,内核能稳定查到每条连接的归属进程。想用进程规则,建议直接开 TUN
  • 系统代理:不完全可靠。连接来自本机回环,多数情况也能查到,但部分程序(多进程架构、服务型进程)会关联失败,此时进程规则不命中,流量落到后续规则。

实用场景

  1. BT 下载强制直连:避免 P2P 流量进代理(多数服务商明令禁止且浪费流量):PROCESS-NAME,qbittorrent.exe,DIRECT
  2. 指定程序走特定地区:配合专用代理组,如 PROCESS-NAME,game.exe,日本节点
  3. 国产软件全家桶直连:省流量、防风控。

注意事项

  • 进程规则应放在域名规则之前才能优先生效(想让它优先的话)。
  • 浏览器是单一进程名,无法用进程规则区分“浏览器里的不同网站”——那仍是域名规则的领域。
  • UWP 应用的进程名可能是通用宿主名,识别效果不佳。
验证:TUN 模式下打开 Connections 页面,Process 列直接显示进程名,命中情况一目了然。