Tor 上の HTTP プロキシ サーバーを使用して HTTP リクエストを作成しようとしています。これまでのところ、Privoxy、Tinyproxy、Polipo を試してきました。しかし、これらのプロキシ サーバーのいずれかを介してリクエストを行うと、プロキシ サーバーは何らかの方法で自分自身を取得し、ループに陥ります。
DNSまたはネットワークに問題があるかどうかを確認するために、プロキシなしでURLを取得しようとしましたが、正常に動作しました. 私はUbuntu 12.04 64ビットサーバーを使用しており、リクエストモジュールでpythonを使用してセットアップをテストしています。
さらに、2 つの静的 IPv4 アドレスを持つサーバーでこの問題が発生しており、1 つの静的 IPv4 アドレスを持つサーバーでは問題なく動作します。EC2 サーバーでこれをシミュレートしようとしましたが、Elastic IP アドレスを持つサーバーでも動作しますが、Elastic IP アドレスのないサーバーでも同じ問題が発生します。
Tinyproxy のソース コードを編集してエラーが発生する理由を確認することで、さらに深く掘り下げようとしました。これは、プロキシ サーバーが要求の「ホスト」が 127.0.0.1 であると考えているためです。リクエストヘッダーに「ホスト」を指定すると、多少うまくいきます。しかし、それは正常な動作ではありません。
プロキシ サーバーが 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>