3

クラウド サーバー上のポートを Android デバイスにトンネリングする必要があります。現在、Android (Jsch) で SSH クライアントを使用して、リバース ポート フォワードを開始しています。これは機能しますが、暗号化/認証のオーバーヘッドは必要ありません/必要ありません。

基本的に、クライアント側 (Android) からクラウド内のサーバーに確立できる単純な IP トンネルです。

このトピックに関するグーグル検索は有望ではなかったので、ここで試してみて、手掛かりが得られるかどうかを確認してみようと思いました. 明らかに、これを自分でゼロから構築したくはありません。

4

1 に答える 1

2

これは実際にはJavaで実装するのはかなり簡単です。デバイスのトンネラーアプリは、サーバーへの接続とデバイスのサービスへの接続の2つの接続を開きます。ここで、Input- / OutputStreamsを使用する場合(nio Channelsのように)、それぞれがInputStreamsの1つを読み取り、受け取ったすべてを反対の出力ストリームに書き込む2つのスレッドが必要です。サーバーでは、ServerSocket.acceptから2つの接続を取得し、どちらがトンネラーでどちらがサービスのクライアントであるかを検出できる必要がある同様のプロセスが必要になります(つまり、トンネリングされたプロトコルのヘッダーをテストします。着信接続)。

複数の接続を同時にトンネリングできるようにする場合、これは少し複雑になります。複数のトンネル接続を開かないようにする場合は、トンネルパケットをデバイス上の複数の接続にディスパッチできるようにするために、何らかのプロトコルを実装する必要があります。

于 2011-05-27T22:27:33.523 に答える