虚拟机里配代理客户端,第一件要选的事是模式:全局还是规则。选全局,虚拟机里所有流量都走代理IP线路;选规则,只有命中列表的流量走,其余直接出去。两种模式没有优劣,选错了会出现「某个程序怎么都不走代理」或者「本机服务被带慢」这类问题。
两种模式的走向
全局模式下,虚拟机的所有出站流量都交给代理客户端处理,包括系统更新、后台服务、客户端自身的检测。好处是省心,任何程序都不用单独配;坏处是流量大,带宽被无关请求占掉一部分。规则模式只把列表里的目标送进代理,其余直连,好处是省带宽、本机服务不受影响,坏处是列表要维护,漏一条就不走。
- 全局模式
- 所有流量走代理,配置简单,占用带宽多。
- 规则模式
- 只走列表内目标,省带宽,需要维护列表。
- 直连
- 不经过代理客户端,外部看到的是本机地址。
什么时候必须用全局
程序自己不支持代理IP设置的时候只能用全局,比如某些客户端只认系统代理。另外做环境隔离的时候,全局更稳妥,因为规则列表漏掉的请求会暴露真实地址。
规则列表怎么写
从任务需要的域名开始写,一个域名一行,写完跑一次,看客户端日志里有没有漏掉的请求。日志里出现直连的目标,说明列表不全,补上再跑。这一步做两三轮,列表就稳定了。
验证模式有没有生效,办法还是查地址。全局模式下,虚拟机里任何程序查到的都是代理IP线路的地址;规则模式下,只有列表内的目标走代理,用列表外的目标去查,返回的是本机地址。两个结果都符合预期,说明模式配对了。只测一个目标容易误判,因为命中与否取决于列表,不取决于模式。
模式选错的表现是部分请求没走代理,整体仍然是通的,所以要用多个目标分别验证。
模式选完先跑一次空载测试,看客户端日志里有没有意外的直连请求。
先用全局跑通,再按需收窄成规则。
全局和规则可以同时用,客户端里一般支持「列表内走代理、列表外也走代理」的兜底设置。兜底开着,等于全局;关掉,才是纯规则。
模式这一层定下来,后面调线路、换地址都不用再动它。定之前多花十分钟验证,比后面反复怀疑省事。
