4

私はこのトピックを読んでいました http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol

そして、私がやろうとしていることは、クライアント/サーバーアプリケーションを持っていることです。私がやろうとしているのは、socks 4 BINDリクエストを使用して、サーバーをリモートのsocksサーバーにバインドし、クライアントをそのsocksサーバーとsocksに接続させることです。サーバーはそれらを私のサーバーに接続させます(少なくともそれは私がsocks BINDリクエストを理解する方法です)

しかし、私はそれを完全には理解していません(私の英語はちょっと悪いです)、私が尋ねていることは何ですか、私がクライアントのリモートIPのいずれかを知らないときにそうすることは可能ですか?サーバーのBIND要求パッケージにはリモートクライアントのアドレスが含まれている必要があり、クライアントが不明なユーザーからのものであり、サーバーからステータス情報を取得しているため(または、INANY_ADDRに0を使用できます)?

4

1 に答える 1

6

あなたが求めていることはSOCKSでは不可能であり、その目的のためのものでもありません. 仕様をもう一度よく読んでください。BIND コマンドは、クライアントとサーバー間の通信にプライマリ接続が使用される複数接続プロトコル (FTP など) で使用するためのものであり、BIND は、サーバーがクライアントにセカンダリ接続を接続する必要がある状況を容易にします。 client はサーバーに接続先を伝えます。その場合、クライアントは SOCKS に BIND コマンドを発行してサーバーの IP/ポートを伝え、その接続のみを受け入れるようにし、結果の SOCKS リスニング IP/ポートをサーバーに送信して接続します。

あなたが求めていることは、ポート転送ルールが定義されたルーターを使用することでより適切に処理されます. 次に、受信接続を受け入れ、アプリのリッスン IP/ポートに転送するルーターのリッスン ポートを開くことができます。最新のルーターのほとんどは uPNP (Universal Plug-N-Play) をサポートしているため、ルーターの構成ソフトウェアへの管理者アクセスを要求する代わりに、転送ルールをプログラムで構成できます。

于 2011-10-12T03:51:32.073 に答える