ポート転送の代わりにSSHトンネリングを使用する方法は?

ポート転送の代わりにSSHトンネリングを使用する方法は?

ISP ルータはポート転送を許可しないので、外部で RDP サーバを使用するためにポート転送の代わりに SSH を使用したいと思います。これが私の考えです:

A - client connecting to the RDP server
B - server
C - device running the RDP server

AがCに接続しようとしています。 Cへの直接接続は不可能であるため、すべてのトラフィックはBを通過する必要があります。

例:
Aは、「Hello world!」を含むパケットを送信します。 Cは「Test OK!」と答えなければなりません。 AのIPは255.255.255.255 BのIPは1.2.3.4です。 CのIPは4.5.6.7です。
したがって、255.255.255.255は1.2.3.4のソケットを開きます。 Aは「Hello world!」を送ります。 B はパッケージを C に渡します。 Cは「テスト成功!」と答え、Bに送り返す。 BはこれをAに送り返す。
RDPサーバーを使って同様のことをしたいと思います。

BはDebian 8を実行し、CはWindows 7を実行します。

ベストアンサー1

例では、クライアントAが実行されているオペレーティングシステムを指定していません。私はある種のコマンドラインSSHクライアントを使用できると仮定します。その後利用できます

 you@A $ ssh -L54321:serverC:3389 serverB -p 12322 -l yourloginnameonB

トンネルを作成します。

このコマンドラインには説明が必要です。この部分をセクション別にしてみよう。

  • -Lスイッチを使用すると、SSHはクライアントシステムA(プロンプトを参照)のポート54321とサーバーC(RDPサーバーが稼働していると仮定)のポート3389にトンネルを生成します。
  • serverBは、このsshコマンドで「検索する」コンピュータの名前です。 B経由で接続しますので、ここにフルホスト名を入力してください。
  • SSHサーバーBが標準以外のSSHポート(通常はインターネット接続コンピュータに推奨)を使用している場合は、その番号をここに-pパラメータとして入力してください。私の例では、BはSSHにポート12322を使用します。
  • 最後に、-lパラメーターを使用すると、serverBにログインするときに使用するログイン名(つまりアカウント)を指定できます。

このコマンドが成功すると、AのRDPクライアントをlocalhost:54321として指定し、C:3389に直接接続されているように見せることができます。

おすすめ記事