进程规则
进程规则按发起请求的可执行文件名称或路径选择策略,仅在 macOS 上生效。iOS 和 tvOS 忽略进程规则;包含进程条件的整条逻辑规则也会被忽略。
语法
PROCESS-NAME,表达式,策略
策略可以是 DIRECT、REJECT,也可以是配置中的节点或策略组名称。
根据表达式的形式,使用以下三 种匹配方式:
| 表达式形式 | 匹配方式 | 示例 |
|---|---|---|
不以 / 开头 | 可执行文件名称,支持精确和通配匹配 | curl、*Helper* |
以 / 开头,不以 / 结尾 | 完整可执行文件路径,支持精确和通配匹配 | /usr/bin/curl、/Applications/*.app/Contents/MacOS/* |
以 / 开头,并以 / 结尾 | 字面目录前缀 | /Applications/Google Chrome.app/ |
表达式包含逗号时使用双引号包围。以下路径均为示例,应按实际可执行文件路径填写。
按名称匹配
名称匹配使用实际发起请求的可执行文件名,不区分大小写:
PROCESS-NAME,curl,DIRECT
PROCESS-NAME,Google Chrome,PROXY
PROCESS-NAME,*Helper*,PROXY
PROCESS-NAME,Worker?,DIRECT
curl 可以匹配 curl 或 Curl。*Helper* 可以匹配名称中包含 Helper 的进程;Worker? 可以匹配 Worker1 等名称。
应用的主进程和辅助进程可能具有不同名称。名称依据实际可执行文件,不使用应用显示名称、父进程名称、PID 或 Bundle Identifier。
按完整路径匹配
完整路径匹配区分大小写,匹配整个可执行文件路径:
PROCESS-NAME,/usr/bin/curl,DIRECT
PROCESS-NAME,/Applications/Google Chrome.app/Contents/MacOS/Google Chrome,PROXY
PROCESS-NAME,/Applications/*.app/Contents/MacOS/*,PROXY
PROCESS-NAME,/*/Worker[0-9],DIRECT
精确路径只匹配该路径对应的可执行文件。通配路径中的 * 可以跨越 /,因此可能覆盖多层目录。
路径直接使用系统返回的可执行文件路径,不额外解析符号链接,也不进行 Unicode 归一化。
按目录前缀匹配
目录表达式必须以 / 结尾,区分大小写,按字面前缀匹配:
PROCESS-NAME,/Applications/Google Chrome.app/,PROXY
PROCESS-NAME,/opt/homebrew/bin/,DIRECT