当我在代理后面时,网站如何找到我的真实 IP 地址?

信息安全 http代理
2021-09-05 15:11:07

我只是想知道像WhatIsMyIP这样的网站如何找出您的真实 IP 地址,即使您使用代理服务器。它说 :

检测到代理

然后他们给你真实的IP地址。

他们是否有可能使用 JavaScript 发送 HTTP 请求而不使用 Web 浏览器代理设置(Java 怎么可能实现)或者有什么神奇的技术?

3个回答

有几种方法:

  • 代理标头,例如X-Forwarded-ForX-Client-IP,可以由非透明代理添加。
  • 可以使用主动代理检查 - 目标服务器尝试在公共代理端口(例如 8080)上连接到客户端 IP,如果发现此类服务正在运行,则将其标记为代理。
  • 服务器可以检查请求是否来自已知代理的 IP。WhatsMyIP 可能有一个很大的列表,包括像 HideMyAss 这样的常见列表。
  • Web 客户端软件(例如 Java 小程序或 Flash 应用程序)可能能够读取浏览器设置,或直接连接到目标系统上的 Web 服务(绕过代理)以验证 IP 是否匹配。
  • 移动应用软件可以识别客户端 IP。示例:PhoneGap 插件

除了 Polynomial 所说的之外,另一种常见的做法是让浏览器在使用和不使用 HTTPS 的情况下查看站点,并查看连接是否来自同一个 IP。

许多透明(例如缓存)代理将允许 SSL 流量在没有代理的情况下通过,因为代理 SSL 连接需要欺骗证书,这会导致一大堆其他问题。

在这种情况下,SSL 地址是“真实”地址,而非 SSL 地址是代理的地址。

网络服务器/网站有可能在代理后面找到真实 IP。通常,HTTP 代理服务器在收到来自客户端/用户的请求后,会在 HTTP 标头中附加一个新字段(X-Forwarded-For),然后将请求转发到 Web 服务器。此 X-Forwarded-For 字段具有客户端的 IP 地址。因此,通过分析该字段,网站可以找出真实的 IP 地址。

但是,代理服务器提供不同级别的匿名性。如果使用高度匿名的代理(也称为精英代理),那么网站可能无法找到真实的 IP 地址,因为这些精英代理通常不包含此类标头。如果您想隐藏真实 IP 地址,另一种选择是使用 Ultrasurf。

查看这篇文章以获取有关 x-forwarded-for 标头的详细信息和一个简单的演示 python 脚本,该脚本显示了 Web 服务器如何检测代理服务器的使用:X-Forwarded-For