改写请求头中 IP 的代理
这类代理会在 HTTP 请求头中填入虚假的客户端 IP 地址。它在该字段中隐藏了真实地址,但请求仍可能包含使用代理的迹象。只替换一个字段,并不能证明请求的其他部分没有真实地址。“Distorting”一词指的就是这种对客户端信息的替换。
这个术语来自较早的代理匿名级别分类。现代商业代理通常应具备高匿名(Elite / High Anonymity)行为:不转发客户端的原始 IP,也不添加表明使用代理的请求头。这一类别主要用于理解较早的说明和公共代理列表中的标签。
请求中的哪些内容发生变化
假设你的公网 IP 是 198.51.100.24,代理使用 203.0.113.80 连接网站。在未加密的 HTTP 请求中,它会在请求头里提供第三个地址:X-Forwarded-For: 192.0.2.55。
第三个地址是代理插入的虚假值,既不是你的真实 IP,也不是连接网站所用的地址。
其他请求头仍可能表明请求经过了中间节点。例如,Via 请求头会记录代理的参与。替换客户端 IP 不会消除这个信号。
网站实际看到什么
连接仍来自 203.0.113.80。在请求头中填入另一个地址,不会将代理移到另一个国家,也不会改变其 IP 所关联的网络和信誉。在不同请求之间更换虚假值,并不属于真正的 IP 轮换:连接地址保持不变。
IP 检测工具可能显示连接地址,也可能显示从请求头中读取的值。因此,同一个代理可能产生不同的检测结果。在测试页面看到虚假地址,不代表每个网站都会将它当作你的 IP。
每个网站都会自行决定使用哪些请求头,以及信任谁提供的值。服务器可能只接受其自身反向代理提供的客户端 IP 信息。你用来访问该网站的代理,并不会自动成为可信来源。
这也适用于 HTTPS 吗?
上述示例要求代理能够读取并修改 HTTP 请求。按常规方式使用 CONNECT 建立 HTTPS 隧道时,请求及其请求头都在端到端 TLS 连接内传输。只中继这部分加密流量的代理无法向这些请求头插入虚假 IP。因此,普通 HTTP 测试得出的这类代理结果,不能自动说明同一代理处理 HTTPS 时的行为。
