同一台电脑上开几个实例程序,每个都想走不同的网络路径,落点在进程识别上。多数人先想到的是整机切换代理IP,结果所有程序一起动,等于没分开。要让两个窗口真的走两条不同线路,得先让分发工具知道哪一条连接是谁发起的,这一步靠进程名或可执行文件路径判定,跟窗口编号没有关系。
分不清发起方是谁,后面无论怎么配,流量都会混在一起走。
| 粒度 | 判定依据 | 适用场景 |
|---|---|---|
| 整机全局 | 系统代理设置 | 所有程序共用一条线 |
| 窗口级 | 模拟器实例编号 | 多窗口环境 |
| 进程级 | 可执行文件名或路径 | 同机多实例、各自独立 |
- 进程名
- 分发工具读到的可执行文件名,同名程序会被当成同一类
- 线路绑定
- 把某个进程名指向某条代理IP线路,其余进程走默认
- 会话
- 进程与线路之间建立的一次连接,断开重连后要重新核对
- 回退
- 规则没命中时走的默认线路,建议留一条可用的
三种分发粒度怎么选
整机全局最简单,一次设置全部生效,代价是所有程序共用一条线路,彼此的表现会互相影响。窗口级常见于模拟器环境,一个窗口对一条线,管理成本适中。进程级最细,同一个窗口里不同的子进程都能分开走,配起来也费事。多数场景停在前两级就够,只有需要精细区分时才做到进程级,比如两组程序各自配一条代理IP。
分发工具靠什么认进程
常见做法是读取可执行文件名,也有的支持完整路径或窗口标题。文件名匹配省事,但同名程序没法区分,比如两个副本都叫同一个名字,工具就分不清。这种情况改用路径匹配,把安装目录带进去,两个副本立刻能被区分开。
选粒度看的是要隔开什么,不必追到最细。要隔开的是两个不同用途的实例,进程级刚好;只是想让两组程序不互相挤,窗口级已经够用。
配完不要只看工具里的规则列表,要去程序那边确认。有些实例会读系统代理设置,有些走自己的连接,结果可能不一样。分别看一下每个实例当前的对外地址,跟规则表对一遍,才能确认谁真的走了哪条线。
落地时的两个细节
默认线路要留一条能用的。规则总有漏网之鱼,新装的程序、临时起的子进程都可能没命中,走默认线路至少不至于连不上。另外切换后要主动断一次:连接按会话建立,规则改了旧连接还在,只有重连才会走新路径。
改一条规则的影响范围
改一条规则,影响的只是这个进程名下的新连接,已经建立的不动。所以调整之后要让程序重新发起连接,否则看到的效果还是旧的。这一步容易忘,排查时也容易误判成规则没生效。
从整机切到进程级,工作量确实增加,省下来的麻烦是可控的。先把粒度定下来,再考虑线路本身的质量,顺序反了会在两边反复折腾。

