我正在尝试使用 Tor 上的 HTTP 代理服务器发出一些 HTTP 请求。到目前为止,我已经尝试过 Privoxy、Tinyproxy 和 Polipo。但是每当我通过这些代理服务器中的任何一个发出请求时,它们都会以某种方式获取自己,并陷入循环。
为了检查 DNS 或网络是否有任何问题,我尝试在没有代理的情况下获取 URL,它工作正常。我正在使用 Ubuntu 12.04 64 位服务器,并使用带有请求模块的 python 来测试设置。
此外,我在具有两个静态 IPv4 地址的服务器上遇到此问题,在具有一个静态 IPv4 地址的服务器上,它工作正常。我试图在 EC2 服务器上模拟这一点,它也适用于具有弹性 IP 地址的服务器,但在没有弹性 IP 地址的服务器上,我遇到了同样的问题。
我试图通过编辑 Tinyproxy 的源代码来更深入地了解错误发生的原因,这是因为代理服务器认为请求的“主机”是 127.0.0.1。如果我在请求标头中指定“主机”,那么它可以正常工作。但这不是正常的行为。
如果它可能只是一个代理服务器,那么我可能会认为它是一个软件错误。但是所有代理服务器都存在问题,这让我想知道网络设置是否有问题
这是我试图提出请求的方式
import requests
# tinyproxy listens on Port 8888
r = requests.get("http://google.com", proxies={'http': '127.0.0.1:8888'})
我得到以下回应
400 Bad Request <p>You tried to connect to the machine the proxy is running on </p>