PROCESS-NAME 规则:按程序名而不是域名分流
有些程序连的是一堆随机 IP,域名规则完全抓不住,这时候直接按进程名匹配最省事:
rules:
- PROCESS-NAME,Telegram.exe,Proxy
- PROCESS-NAME,steam.exe,DIRECT
- PROCESS-NAME,curl.exe,Proxy
写法要点
- Windows 上要带
.exe后缀,匹配时不区分大小写,但建议照抄任务管理器「详细信息」标签页里显示的名字; - 它只匹配文件名,不匹配路径。两个同名程序区分不开,需要区分时改用
PROCESS-PATH写完整路径; - 顺序规则照旧——放在
GEOIP和MATCH之前才有机会命中。
为什么有时候不生效
进程匹配依赖内核去查这条连接属于哪个进程。直接由程序自己发起的连接没问题;但如果流量经过了中转,内核看到的发起方就变成中转程序本身了。常见的失配场景有三类:WSL2 和虚拟机里的程序(发起方是虚拟网卡)、部分 UWP 应用(走系统代理服务)、以及被别的代理软件二次转发的流量。
不确定进程名怎么办
去 Connections 页面,找一条这个程序产生的连接,看 Process 那一列——内核认到的名字就是它,照抄进规则最稳。这个办法也能顺便确认「到底是不是这个程序在发流量」,有时候你以为是浏览器,实际是它的某个辅助进程。