有时你想按“是哪个程序”而不是“访问哪个网站”来分流:让 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。
- 系统代理:不完全可靠。连接来自本机回环,多数情况也能查到,但部分程序(多进程架构、服务型进程)会关联失败,此时进程规则不命中,流量落到后续规则。
实用场景
- BT 下载强制直连:避免 P2P 流量进代理(多数服务商明令禁止且浪费流量):
PROCESS-NAME,qbittorrent.exe,DIRECT。 - 指定程序走特定地区:配合专用代理组,如
PROCESS-NAME,game.exe,日本节点。 - 国产软件全家桶直连:省流量、防风控。
注意事项
- 进程规则应放在域名规则之前才能优先生效(想让它优先的话)。
- 浏览器是单一进程名,无法用进程规则区分“浏览器里的不同网站”——那仍是域名规则的领域。
- UWP 应用的进程名可能是通用宿主名,识别效果不佳。
验证:TUN 模式下打开 Connections 页面,Process 列直接显示进程名,命中情况一目了然。