【问题标题】:Proxy servers resolve requests to themselves代理服务器将请求解析给自己
【发布时间】:2012-12-24 05:05:11
【问题描述】:

我正在尝试通过 Tor 使用 HTTP 代理服务器发出一些 HTTP 请求。到目前为止,我已经尝试过 Privoxy、Tinyproxy 和 Polipo。但是每当我通过这些代理服务器中的任何一个发出请求时,它们都会以某种方式获取自己,并陷入循环。

为了检查 DNS 或网络是否有任何问题,我尝试在没有代理的情况下获取 URL,它工作正常。我正在使用 Ubuntu 12.04 64 位服务器,并使用带有 requests 模块的 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>

【问题讨论】:

  • 你能标记你使用的程序语言吗?
  • 我不确定 tiniproxy,但 Privoxy 和 Polipo 是 socks 代理,而不是 http/https。
  • Privoxy 和 Polipo 非常像 HTTP 代理服务器,但它们可以转发到 socks 代理,这就是它们过去与 TOR 捆绑在一起的原因。不过感谢上面的链接
  • 问题解决了!原来这是我正在使用的最新版本的requests 库的问题。 (github.com/kennethreitz/requests/pull/1060)。感谢@eicto 的间接帮助

标签: python linux networking proxy tor


【解决方案1】:

原来这是最新版本的请求库的问题。 https://github.com/kennethreitz/requests/pull/1060

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    相关资源
    最近更新 更多