
私が探しているものについての私の心の中の概念体系:
2 つのホスト(PC も可)があるとします。
両方とも動的ネットワーク(動的 IP)上に存在できます。
両方とも、お互いを見つけるために同じ中央サーバーに接続します(私の場合必要です! 1 つのクライアント ホストがサーバーとしても機能できます)。
サーバーはブリッジとして機能します。そしてトンネリングを実現します。
最初のホストがサーバーに接続します。2 番目のホストも接続します。これで、サーバーは両方のノード(ホスト)をマップします。
そして転送(トンネリング)を実現します。
ホスト 1 がホスト 2 に何かを送信すると、必ず中央サーバーに送信されます。Web ソケットなどを介してです。次に、サーバーが 2 番目のホストに送信します。2 番目のホストが応答します。または何でも可能です。サーバーは、2 つの方法でブリッジングとトンネリングを処理します。
ここのプロパティ:
- ノードは動的に接続できます。ネットワークやダイナミック DNS を設定する必要はありません... teamviewer や anydesk と同じです。
- TCP 接続はトンネリングされ転送されます。
- 2 つのノードが接続され、1 つのホストのように動作できます。
要約: pc1、pc2 => pc1 を pc2 に接続します。お互いの IP アドレスを知る必要はありません。すべて動的です。直接トンネリングです。
どうやってするか ?
いろいろ調べた結果、自分でそのようなものを実装するのが一番簡単な方法だと思いました。どうすればそれができるか想像できるからです。
それが必要でした! AWS EC2 で Android エミュレーターを実行しようとしているときに! また、adb をリモート エミュレーターに転送するためにも!
私が尋ねているのはAndroidの問題の解決策!むしろ上記のシステム!私が説明したことを実行するものがすでにあるかどうか疑問に思っています。
そうしないと、時間がかかります!
頭に浮かんだ解決策は、中央の Websocket サーバーを検討していることです。また、WS 経由で TCP をトンネリングしています。
このようなシステムの名前は何でしょうか?
そして、それを達成するための良い方法は何でしょうか?あなたならどのように取り組みますか?
私が調べた上記のシステム以外の方法
上記のようなことが考えられるシステムや問題の場合!Android リモート デバッグと同様です。
次のようなことが考えられます。
SSH リバース トンネリング => 静的エンドが必要です。私の場合は、サーバーが例です。サーバー インスタンスで SSH が動作している必要があります。AWS では、動作するエージェントをセットアップするために多少の作業が必要です。必ずしも簡単ではありません。
ダイナミック DNS => ポート転送が必要です。設定が複雑になる場合があります。セキュリティ上のリスクの可能性あり
言及できる人のために!私が尋ねているのは、上記の概念体系だけです!
私が概念的に述べたことです。最も簡単に実行できるものやシステムです。複雑な設定は必要ありません。1 つのサーバーを構成するだけです。設計により、すべてがスムーズかつ動的に実行されます。上級ユーザーでなくても大丈夫です。同じチームや組織内の他の開発者と同じように使用できます。teamviewer や anydesk など、すでに動作している多くのシステムと同じです。
答え1
問題の解決策として openvpn のようなものを使うのはやりすぎでしょうか? openvpn は必要な機能をすべて備えているだけでなく、ネットワーク トラフィックも暗号化します。この暗号化により、構成が複雑になります。