
私はネットワーク関連の経験があまりないのですが、最近は私の国での検閲のレベルが急速に高まっているため、詳しく調べる必要が出てきました。私は別の国で 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 アドレスを単純に使用する場合は機能しません。