换IP有四种常见做法:客户端里填代理IP、系统路由里加规则、网卡上绑地址、虚拟机里单独配。四种做法改的层次不一样,效果和影响范围也完全不同。选错层次,改了等于没改,或者改完之后别的程序也跟着变了。
先确认改在哪一层,再看它覆盖到谁。
层次决定影响范围,影响范围决定会不会误伤。
- 客户端层:只影响这一个程序,最精准,换程序就失效
- 系统路由层:全机生效,覆盖所有程序,配错影响最大
- 网卡层:绑定到某块网卡,适合固定搭配的机器
- 虚拟机层:整台虚拟机走一条线,隔离最彻底
精准度最高的是客户端层。每个程序各自填自己的设置,互不干扰,缺点是换个程序就得重填一遍,多开的时候工作量翻几倍。系统路由层一次配完全机生效,省事,但配错一个规则全机断网,回滚也麻烦。
怎么选
实例少就用客户端层,实例多用虚拟机层,中间的两种留给特殊场景。客户端层的配置直观,出问题一眼能看出是哪个程序;虚拟机层隔离彻底,代价是资源占用翻倍。系统路由层适合只有一个主程序的机器。
网卡层现在用得少,但在一种场景下很合适:一台机器上两块网卡,一块走本地网络,一块走外部线路,程序和网卡的对应关系固定。这种搭配稳定,缺点是改起来要动系统设置。
换层之后要复测
改了层次一定要复测。客户端层改完,开两个不同程序各查一次地址,两个都变了才算生效;系统路由层改完,要用命令行和浏览器各查一次,确认不是只有浏览器走了新规则。
常见的三种错配
第一种是在客户端层配了规则,程序却走了系统代理,两套规则打架,结果不可预测。第二种是在系统层做了全局,忘了给本地网络留例外,打印机和内网服务全断。第三种是虚拟机配了线路,宿主机没配,虚拟机里的流量还是从宿主机出去。
三种错配的共同点是没确认生效范围。配完随手查一次地址,只能证明某一个程序通了,证明不了范围对不对。要验证范围,至少用两个不同类型的程序各测一次。
层次选对,范围验过,换IP这件事才算做到位。剩下的是稳定性,那要靠时间去验,急不来。
