我正在尝试弄清楚我的宽带提供商是否在使用透明代理。大多数情况下,我并不介意他们是否使用透明代理,但今天我想预览一个在 DNS 传播之前从一台服务器移动到另一台服务器的站点。因此,我将新的 IP 地址放入 /etc/hosts 中,并希望能够连接到新服务器,但遗憾的是,我仍然得到旧地址。
为了证明我正在与“新”服务器对话,我正在远程登录到新的IP 地址并执行以下操作:
GET /
Host: www.example.com
这是仍然访问旧服务器。
我尝试在互联网上其他地方的另一台主机上执行相同的操作,该主机上肯定没有透明代理缓存,而这次它击中了正确的服务器。
因此我很确定我的宽带线路上有一个缓存...并且该缓存正在执行其自己的 DNS 查找,这当然会覆盖我的 /etc/hosts 文件。
但是,有什么方法可以让我了解更多信息并确认它确实存在吗?
我的网络请求的“源 IP 地址”似乎是我的家庭 IP 地址,因此没有显示代理缓存
我无法成功使用 Wireshark 检查数据包以查看直接与站点(例如在本地主机上)通信与通过代理通信时是否存在差异。
有人可以提供一些智慧之言吗? 有没有可靠的方法可以检测或识别内联/透明代理缓存?
谢谢
答案1
如果您使用 IP 地址连接到远程服务器,那么 /etc/hosts 和/或 DNS 记录的内容就无关紧要。
你可以尝试运行nmap针对本地计算机和远程计算机的相关 IP 地址,查看它所标识的正在使用的远程 TCP/IP 堆栈,并根据您对服务器操作系统的了解,查看它是否与您期望的相匹配(或不匹配)。
如果您想尝试避免使用代理,可以尝试使用 SSL 或任意非标准端口。
通过查看您的计算机连接到远程计算机或多台远程计算机的端口 80 所花费的时间,您可能可以学到一些东西。如果您的 ISP 正在运行本地透明代理,那么无论您尝试连接到近处还是远处的计算机,打开连接所花费的时间应该非常相似,因为无论哪种情况,您实际上都是在连接到附近的计算机。httperf在这方面可能会有帮助。
您还可以通过关闭远程服务器,然后尝试通过代理连接来了解一些东西 - 如果您可以成功连接到不接受连接的机器,那么这不是一个好兆头。
答案2
答案3
尝试“我的 IP 是什么”服务;大多数服务都会报告代理的 IP
答案4
这篇文章有一个检测透明代理存在的 perl 脚本和技术