ネットワークAにあるWindows PCとネットワークBにあるWindows PCがあります。ネットワークBにもいくつかのLinuxサーバーがあります。ネットワークAのPCから、ネットワークBの任意のサーバーにSSH接続できます。ただし、ネットワークBのコンピューターからネットワークAのPCに接続できません。
Windows PC Local
__ _
can ssh [__]|=|
.-,( ),-. ---------> .-,( ),-. /::/|_|
.-( )-. .-( )-.
( Network A ) ( Network B )
'-( ).-' '-( ).-'
'-.( ).-' <--------- '-.( ).-'
can't ssh Linux Server #1
Windows PC Remote __ _
__ _ [_Linux Server #2
[__]|=| /: __ _
/::/|_| [__]|=|
/::/|_|
ネットワークB PCからネットワークA PCにRDPできるようにしたい。これは、Linuxボックスの1つを経由する何らかのリバーストンネリングを使用して可能ですか?
ソリューション1:ネットワークAのPCから、ネットワークBのLinuxホストに接続して、 リバースSSHトンネルPuTTY のようなものを作成します。ローカルポートは3389
、リモートホストは127.0.0.1
で、ポートは任意です(例として6000
を使用します)。次に、ネットワークB上のPCから、PuTTYを使用して同じLinuxホストに接続し、フォワードトンネルを実行します。ローカルポートは3389
以外に設定する必要があります(Microsoft RDPクライアントはlocalhostへの接続を許可しませんが、will任意のポートでのlocalhostへの接続を許可します)。 6000
と同じポート番号を再利用してみましょう。リモートIPは127.0.0.1
で、リモートポートは6000
である必要があります。次に、RDPクライアントを127.0.0.1:6000
に向けます。
実際には、ネットワークBのPCのポート6000
に接続します。PuTTYは、ポート127.0.0.1
の6000
に転送するように設定されているLinuxホストに転送します。ネットワークA上のPCからのPuTTY接続は6000
をリッスンし、それをPC A上の127.0.0.1
に転送してポート3389
に転送し、RDPが接続を受け入れます。
ソリューション2:ネットワークB上のPCにSSHDをセットアップすると、リバースポートを1つ転送するだけで済みます。 Bitvise SSHD があり、これはWindowsで実行され、ビジネス以外での使用は無料です。 Bitviseは、WinSSHDと組み合わせてRDPトンネリングを処理する別のクライアントも実行します。ユーザー名、設定(全画面表示など)を保存し、保存ファイルから起動できるため、RDPを使用する前にポートフォワードを接続または設定する必要がないようにすることができます。