一个窗口配了一条代理IP,另一个窗口没配,结果两个窗口查出来的地址一样。这种情况在并行跑多个实例时很常见,原因是其中一条连接被别的程序借走了。判定的依据是每条连接实际落在哪条线上,配了几条线只是前提,不代表真的分开了。
先确认两个窗口之间的连接是不是真的分开,再谈线路质量。
系统级的设置对同一台机器上的所有程序生效,只要有程序读它,就会跟着走。所以做独立性验证之前,必须先把系统级的入口关掉,只让客户端按进程分发。这一步没做,后面查到的结果全是混的,越查越乱。
窗口 A 走代理IP线甲、窗口 B 走代理IP线乙,关掉系统代理之后各自查一次,两条结果不同,独立性才算成立。
- 系统代理
- 对全机程序生效的入口,做独立验证前要先关
- 按进程分发
- 客户端读取进程名,分别指向不同线路
- 连接归属
- 一条连接实际走的线路,由建立它的程序决定
- 残留连接
- 配置改了但旧连接还在,仍旧走原路径
三个验法,从便宜的做起
第一个验法不花钱:关掉系统代理,两个窗口分别查地址。第二个验法多花一点时间:把其中一个窗口的线路断开,看另一个窗口有没有受影响,没受影响说明确实是分开的。第三个验法在业务时段做:两个窗口同时跑任务,看延迟是否各自独立波动。三个都过,基本可以放心。
验法一:关掉系统代理再查
关掉之后先确认它真的关掉了,有些客户端会自己接管系统设置,界面上显示已关闭,实际仍在生效。判断办法是断掉客户端,再查一次地址,回到本机地址才说明系统层是干净的,这一步最容易漏。
验法二:断一条看另一条
断开窗口 A 的线路之后,窗口 B 的地址应该保持不变,任务也不该中断。如果 B 也跟着变了或者断了,说明两条连接共用了同一套转发配置,得回到客户端的规则里找原因,通常是两个进程名被同一条规则覆盖了。
验法三与两处常见误判
第三个验法看的是时间维度:两个窗口同时跑任务,延迟曲线的起伏应该各自独立。两条曲线同步起伏,说明它们背后是同一段链路,独立性没有做到。这个判断不需要工具,看几轮结果就能感觉出来。
误判多半出在两处:一是查地址的页面对结果做了缓存,看到的还是上一次的;二是客户端显示已连接,但规则里的进程名与实际不符。两处都核对过,再去怀疑线路。
