Clash Verge Rev 按应用分流:进程规则与命中检查
为指定应用设置代理或直连,区分流量接管、进程识别与规则顺序。
本页目录
按应用分流要满足两个条件
第一,应用的流量确实进入了 Mihomo;第二,内核能识别发起连接的进程。给某个应用添加进程规则,不会自动把它原本直连的流量吸进客户端。需要接管不遵循系统代理的应用时,先阅读TUN 设置 。
远端手机通过电脑代理上网时,电脑通常无法获知手机内部是哪个应用发起请求,因此不能把本机进程规则原样用于所有局域网设备。先分清“本机应用”和“其他设备”,再选择匹配方法。
第一步:取得真实进程名称
- 启动目标应用,访问一个容易识别的页面或发起一次请求。
- 打开 Clash Verge Rev 的「连接」,按目标域名筛选。
- 查看该连接的进程名称或路径。界面没有显示时,可以先到操作系统的任务管理器、活动监视器或进程工具中核对,但仍需确认是实际联网的子进程。
- 记录大小写、空格和
.exe后缀。软件展示名称不一定等于网络进程名。
浏览器、桌面聊天工具和基于 Electron 的程序可能由辅助进程发起连接。一个应用使用多个进程时,先从真实连接记录入手,不要仅凭图标下的名称写规则。
第二步:添加一条最小规则
在当前订阅的右键菜单打开「编辑规则」,把规则放到前置区域。以下用于演示语法,按实际进程名选择其中一条,不要不加区分全部照抄:
PROCESS-NAME,example.exe,DIRECT
PROCESS-NAME,Example Helper,DIRECT
若要代理,把 DIRECT 换成当前订阅确实存在的代理组名称。在代理页确认该组已经选择可用节点,避免规则已命中却被送到一个空组。
只需要对某个应用的一部分网站分流时,进程规则可能过宽;它会影响这个进程的所有匹配连接。可以改成域名规则,或在掌握逻辑规则后组合进程与域名条件。初次设置先用单条规则验证,别同时引入复杂正则。
第三步:确认进程识别没有被关闭
「设置 → 当前配置」中检查 find-process-mode。Mihomo 的 strict 由内核判断何时识别进程,always 强制尝试,off 则关闭识别。确实需要进一步排查时,在当前订阅扩展里设置:
find-process-mode: always
保存并重新应用订阅,再核对最终值。这个开关不能让内核凭空看见远端设备的进程,也不能代替系统权限或平台能力。确认工作正常后,按实际需求决定保留 always 还是恢复原值,避免对所有连接长期增加不必要的识别工作。
第四步:重新建立连接验证
- 使用规则模式;全局模式下不要用规则命中情况判断效果。
- 完全结束目标应用的旧请求,重新打开应用并发起新请求。
- 在连接页面核对同一个域名的新连接、进程信息、命中规则和出站链路。
- 同时用另一个应用访问相同域名,确认它没有被这条进程规则意外影响。
- 需要测 UDP 时,单独发起实际 UDP 业务,不能用网页 TCP 请求代替验证。
修改规则不会保证已有长连接立刻换路。最常见的误判是规则已保存,却一直观察旧连接。
进程规则为什么没有生效
| 现象 | 优先检查 |
|---|---|
| 连接列表没有这条请求 | 应用是否遵循系统代理,是否需要 TUN,是否另有内置代理 |
| 有请求但没有进程 | 识别模式、服务权限、平台支持和连接来源 |
| 有进程但命中别的规则 | 进程名是否准确,前面是否已有更早命中条件 |
| 规则命中但业务不通 | 出站组选择、节点状态和协议支持 |
| 只有部分功能走代理 | 应用是否有多个联网子进程或不同协议连接 |
完整路径规则 PROCESS-PATH 适合区分同名程序,但路径随系统和安装位置变化,不能直接使用别人的用户名目录。要使用路径时,从自己的连接或进程信息复制,并按 YAML 字符串转义;Windows 反斜杠可使用单引号保留。
如何撤回
删除刚加的前置进程规则,把 find-process-mode 恢复为记录的旧值,重新应用订阅,重启目标应用并测试。若只是某一应用失效,先撤回这条规则,不要删除订阅或重置全部网络。
相关文档:Mihomo 进程匹配 、进程识别模式 。