https 経由のプレーン http プロキシですか?

https 経由のプレーン http プロキシですか?

私はネットワーク関連の経験があまりないのですが、最近は私の国での検閲のレベルが急速に高まっているため、詳しく調べる必要が出てきました。私は別の国で VPS をホストしており、そこで OpenVPN と Shadowsocks サービスをセットアップしています。これは、ローカルの検閲を回避し、禁止されているリソースにアクセスするための優れたツールですが、今はもっと複雑なものが必要です。最近、私の ISP が、私が何百ものトレントをシードしているいくつかのトレント トラッカーをブロックしました。現在、私のトレント クライアントはそれらのトラッカーにアナウンスできないため、DHT でシードすることしかできません。私がしたいのは、ブロックされたトラッカーに接続するための回避策を使用することですが、トレント トラフィック全体を VPN/プロキシにラップするのではなく、トラッカーのアナウンスのみを行う何らかのプロキシを使用し、実際の でシードできるようにしたいのですIP:Port。 Deluge クライアントを、トラッカー接続のみに Socks5-proxy(Shadowsocks) を使用するように設定しようとしましたが、トラッカーが実際の IP ではなく VPS の IP を取得するため、期待どおりに動作しません。その後、機能する方法を見つけました。次のようにして、VPS で Nginx を proxy_pass モードで設定しました。

http {
    types_hash_max_size 4096;
    server {
        listen 80 default_server;
        access_log off;
        return 444;
    }
    server {
        listen 80;
        server_name <trackers_list>;
        allow <my_home_ip>;
        deny  all;
        access_log off;
        location / {
            proxy_pass http://$http_host;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            resolver 127.0.0.1;
        }
    }
}

ルーターの設定で、ブロックされたトラッカーへのすべてのリクエストをリモート VPS のポート 80 に転送しました。これで正常に動作します。プロキシ経由でトラッカーに通知できますが、トラッカーはヘッダーを利用して実際の IP をピアに渡しX-Forwarded-For、DHT は壊れません。ただし、問題は次のようになることです。


Me -> http -> ISP -> http -> Nginx -> http -> tracker

トラッカーはプレーンな http プロトコルを使用するため、リクエスト全体が暗号化されません。したがって、ISP は、必要に応じてリクエストの実際の宛先を確認し、DPI などでリクエストをブロックできます。私が望むのは、次のようになります。


Me -> https -> ISP -> https -> Nginx -> http -> tracker

Nginx に、ヘッダーを追加したプレーンな http リクエストをトラッカーにプロキシさせX-Forwarded-For、自宅のマシンと Nginx 自体の間では暗号化を使用するようにしたいです。ポート 80 で自己署名 SSL 証明書を使用するように Nginx に単純に指示しようとしましたが、当然ながら、その方法では 400 エラーが発生しますThe plain HTTP request was sent to HTTPS port

実現可能でしょうか? Nginx では無理でも、他のツールなら可能でしょうか?

答え1

リバース プロキシなどでこの問題を解決する方法はわかりませんが、SSH ポート転送を行うことはできます。つまり、VPS への SSH 接続を維持し、SSH を設定してローカル ポートをトラッカーのポートに転送します。次に、実際のトラッカー アドレスではなく、ローカルホストのアドレス:ポートを使用するように Torrent アプリケーションを設定します。

気に入ったら、トラッカーをTorrent アプリケーションのように構成します。または、他の任意のローカル ポートを使用します。ssh –L 8080:the.tracker.ip:trackerport [email protected]http://localhost:8080

OSに応じて、puttyなどのツールを使用できます。https://github.com/daradib/sidedoor後者はトンネルを開いたままにして、中断時に自動的に再接続します。その後、SSH トンネルはそれを通過するすべての通信を暗号化します。

編集: これは、トレント アプリケーションが何らかの方法でパブリック IP アドレス自体を決定する場合にのみ機能し、トラッカーが接続元と思われる IP アドレスを単純に使用する場合は機能しません。

関連情報