日常科学上网走 Clash 系客户端,大多数应用没问题。但有些特殊 App 不适合走代理:
- 远程控制类(ToDesk、向日葵、AnyDesk、TeamViewer):走代理会连不上或黑屏
- 微信 / QQ:中转导致延迟大或者协议对不上
- 游戏:延迟敏感、部分反作弊系统会怀疑 IP
- 一些内网 App:需要局域网直连
Clash Meta(含 Verge Rev、ClashX Meta、OpenClash)提供 PROCESS-PATH-REGEX 规则,按进程路径匹配后强制直连。
规则语法
- 'PROCESS-PATH-REGEX,<正则>,<策略>'
例:
- 'PROCESS-PATH-REGEX,/Applications/WeChat.app.*,DIRECT'
匹配路径包含 /Applications/WeChat.app 的进程,直连。
常用配置(macOS)
prepend:
# 远程控制软件
- 'PROCESS-PATH-REGEX,/Applications/ToDesk.app.*,DIRECT'
- 'PROCESS-PATH-REGEX,/Applications/UURemote.app.*,DIRECT'
- 'PROCESS-PATH-REGEX,/Applications/SunloginClient.app.*,DIRECT'
- 'PROCESS-PATH-REGEX,/Applications/TeamViewer.app.*,DIRECT'
- 'PROCESS-PATH-REGEX,/Applications/AnyDesk.app.*,DIRECT'
# 通讯软件
- 'PROCESS-PATH-REGEX,/Applications/WeChat.app.*,DIRECT'
- 'PROCESS-PATH-REGEX,/Applications/QQ.app.*,DIRECT'
# 开发工具(可选)
- 'PROCESS-PATH-REGEX,/Applications/Docker.app.*,DIRECT'
append: []
delete: []
prepend 表示加到规则最前面(优先级最高,第一个匹配到就返回)。
Windows 上路径
Windows 版路径不同:
- 'PROCESS-PATH-REGEX,.*\\WeChat\.exe$,DIRECT'
- 'PROCESS-PATH-REGEX,.*\\ToDesk\.exe$,DIRECT'
- 'PROCESS-PATH-REGEX,.*\\SunloginClient\.exe$,DIRECT'
或者用 PROCESS-NAME(更省心):
- 'PROCESS-NAME,WeChat.exe,DIRECT'
- 'PROCESS-NAME,ToDesk.exe,DIRECT'
PROCESS-NAME 只匹配文件名,不用管路径,跨平台更方便。
放哪儿
Clash Verge Rev:
配置界面 → 配置 → 脚本 / Rules 覆写。规则放在 prepend 数组里。
ClashX / ClashX Meta:
~/.config/clash/config.yaml 的 rules: 数组开头(或用 mixin/override)。
Clash for Windows(已停止更新):
Parsers → 编辑 YAML 覆写规则。
想让某 App 走特定节点
改成策略组名字:
- 'PROCESS-PATH-REGEX,/Applications/Chrome.app.*,🚀 节点选择'
前提是策略组里有这个名字:
proxy-groups:
- name: 🚀 节点选择
type: select
proxies:
- 🇺🇸 美国
- 🇯🇵 日本
- 🇭🇰 香港
查真实进程路径
不确定 App 的路径,先查一下(macOS):
# 按名字找 PID
pgrep -x WeChat
# 用 PID 查完整路径
lsof -p <PID> | head -5
# 或者一句话
ps -ax -o command | grep WeChat | grep -v grep
Windows:
Get-Process | Where-Object Name -like "*WeChat*" | Select-Object Name, Path
规则匹配优先级
Clash 从上往下匹配,第一个命中就返回。所以 prepend 里的规则会覆盖后面的常规规则。
要精细控制某类流量的策略:
rules:
# 高优先级:某个 App 强制直连
- PROCESS-NAME,WeChat.exe,DIRECT
# 中优先级:国内 IP 直连
- GEOIP,CN,DIRECT
# 中优先级:广告拦截
- DOMAIN-SUFFIX,doubleclick.net,REJECT
# 兜底:所有其它走代理
- MATCH,🚀 节点选择
顺序错了效果就变了。
常见问题
1. 规则没生效
Clash Meta 才支持 PROCESS-* 系列规则,老版 Clash 不支持。看客户端版本,升级到 Meta 内核。
2. macOS 上要给 Clash 权限
系统偏好 → 安全性与隐私 → 隐私 → 允许 Clash 访问其他应用的进程信息。
3. 路径匹配正则要转义
. 在正则里是任意字符,严格匹配要写 \.:
- 'PROCESS-PATH-REGEX,/Applications/WeChat\.app.*,DIRECT'
4. 微信直连了还是登不上
微信是走多个域名的,有的不在国内。除了 App 直连,可能还要加域名规则:
- DOMAIN-SUFFIX,weixin.qq.com,DIRECT
- DOMAIN-SUFFIX,wechat.com,DIRECT
一句话总结
远程控制、微信、游戏这类”不适合走代理”的应用,用 PROCESS-PATH-REGEX 或 PROCESS-NAME 走直连。规则要放在 prepend(最高优先级),只有 Clash Meta 内核才支持这类规则。
