SOCKS 代理和 HTTP:IP 地址会被隐藏吗?

SOCKS 代理和 HTTP:IP 地址会被隐藏吗?

据我所知,使用 HTTP 代理,将会发送一个包含用户 IP 地址的标头字段。

但是 SOCKS 几乎可以与所有服务和协议兼容,因此不应该有包含实际 IP 地址的这样的标头字段。

但理论上,代理服务器可以检测到请求是在端口 80 上完成的,使用 HTTP 语法等,并手动添加该字段?

答案1

那是不对的。

首先要注意的是HTTP 1.1 数据报根本不包含 IP 地址;该信息位于第 3 层数据报中。HTTP 1.1 标头中与代理相关的唯一字段是身份验证标头,它指示代理是否需要登录。

SOCKS 发生在第 5 层(低于 HTTP,但在 IP 之上),并且涉及在源和目标之间创建一对电路,因此它不只是传递它接收到的数据报;它从第 5 层及以下层完全重新封装它们,以便接收服务器在第 5 层甚至不知道客户端正在使用 SOCKS 代理。该标头在传输过程中被删除,并且第 7 层有效负载被放置在新的传输段中,并放在新的数据包中,然后才能发送到远程目的地。

可以确定通信中是否使用了已知代理,具体取决于IP 地址数据库对于已知代理,但在代理和目的地之间传递的数据报中应该没有明确的证据。

值得注意的是,代理的最终结果因对手而异。拥有基础设施的国家可以看到大量网络,他们很可能能够分辨出你是谁,而他们的能力远远超出了这些论坛的范围。

答案2

代理通常会插入 X-Forwarded-For 标头或其他标识客户端 IP 的标头,但除此之外,通过 HTTP 代理发出时客户端 IP 不会向上游传输,并且上游连接使用代理的 IP 地址作为源。

至于 SOCKS,与http端口的SOCKS连接也可能被http代理拦截或转移(温盖特将此作为选项)。因此,是否插入任何标识客户端的标头将取决于该代理的配置。

但是直接的 SOCKS 无法向对端识别客户端的 IP。

免责声明:我为 Qbik 工作,该公司是 WinGate 的作者

相关内容