单窗口单代理IP的原理,说起来只有一句话:让每个窗口发出的请求,各自带上不同的来源。实现方式有两条路,一条在系统层按进程分流,一条在每个窗口里单独填参数。两条路的原理不同,效果也有差别。
原理清楚了,配置就不会乱试。
系统层分流这一条路,靠的是识别发出请求的进程属于哪个窗口,再按进程分配线路。这条路对程序没有要求,程序不用改任何设置,代价是需要系统层支持按进程分流,而且识别不一定百分百准确。识别错的后果是两个窗口走了同一条线路,而界面上一切正常,很难发现。
窗口内单独填这一条路,靠的是每个窗口读取自己的配置。这条路最准,因为配置就在窗口里,看得到也改得了。代价是要求窗口支持独立配置,有的工具所有窗口共用一份,这一条路就走不通。
两条路的共同点是:都需要窗口之间先隔离。数据目录、缓存、以及配置如果共用,无论走哪条路都会串。所以原理的第一步其实是隔离,第二步才是分配线路,顺序不能颠倒。
代理IP的分配在原理上不难,难的是确认有没有真的生效。判断办法只有一个:在每个窗口里各查一次来源,全部不同才算成。界面上显示已连接不算,因为显示的是配置状态,不是实际走向。这一点在很多场景下都会误导人,配完之后一定要从外部再确认一遍。
明白了原理,就知道哪些做法是无用功。比如在同一个窗口里反复换参数,期望不同时刻走不同地址,这不叫单窗口单地址,只是来回改配置。原理上要的是每个窗口一个稳定的来源。
原理这一层搞清楚,剩下的都是操作。先隔离、再分配、最后逐个验,三步走完,单窗口单代理IP就实现了。走不通的时候回来看原理,往往能发现是漏了隔离这一步。
