Clash Verge Rev 规则覆写:prepend/append/delete 与 PROCESS-PATH-REGEX 详解

Clash Verge Rev 的规则覆写配置片段:

prepend:
  - 'PROCESS-PATH-REGEX,/Applications/ToDesk.app.*,DIRECT'
  - 'PROCESS-PATH-REGEX,/Applications/UURemote.app.*,DIRECT'
  - 'PROCESS-PATH-REGEX,/Applications/WeChat.app.*,DIRECT'
append: []
delete: []

prepend / append / delete 的含义

字段作用
prepend在规则列表最前面插入,优先匹配
append在规则列表最后面追加,最后匹配
delete从现有规则中删除匹配项

prepend 里的规则优先级最高,命中后直接执行,不再往下匹配。

PROCESS-PATH-REGEX 语法

PROCESS-PATH-REGEX,<正则表达式>,<策略>

macOS 示例:

PROCESS-PATH-REGEX,/Applications/WeChat.app.*,DIRECT

匹配进程路径:

/Applications/WeChat.app/Contents/MacOS/WeChat

Windows 示例:

PROCESS-PATH-REGEX,.*\\WeChat\\WeChat.exe,DIRECT

注意 Windows 路径需要用 \\ 转义反斜杠。

为什么远程控制软件要设为 DIRECT

ToDesk、TeamViewer、向日葵、AnyDesk 等远程桌面软件通过自有中转服务器建立连接,走代理后常见问题:

  • 连接黑屏
  • 延迟显著增加
  • 无法建立 P2P 通道
  • 连接频繁中断

把这类软件设置为 DIRECT 可以绕过代理,走最短路径连接中转服务器。

常用直连配置

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/DingTalk.app.*,DIRECT'

查找 macOS 进程真实路径

# 通过进程名查找
ps aux | grep ToDesk

# 通过 PID 查看文件
lsof -p <PID> | head -5

输出示例:

/Applications/ToDesk.app/Contents/MacOS/ToDesk

然后写规则:

PROCESS-PATH-REGEX,/Applications/ToDesk.app.*,DIRECT

让应用走代理

如果需要某个应用强制走代理(和默认行为相反),改策略组名称:

prepend:
  - 'PROCESS-PATH-REGEX,/Applications/SomeApp.app.*,节点选择'

前提是策略组 节点选择 在你的 proxy-groups 中存在。