2つの連続したLinuxマシンの背後にあるVNCを実行しているLinuxマシン(VNCServerと呼ぶことにします)に接続したい状況があります。つまり、VNCServerにsshするには、ラップトップからGateway1に、次にGateway1シェルからsshする必要があります。 Gateway2にsshし、そのシェルから最終的にVNCServerにsshします。ネットワーク設計とアクセスフローを変更できません。ラップトップ->ゲートウェイ1->ゲートウェイ2->サーバー。 Gateway1にroot権限がなく、22と5901を除くすべてのポートが閉じています。
ラップトップでVNCビューアを起動してVNCServerにアクセスする方法はありますか?私はそれがsshトンネリング機能を使用して行われる可能性があることを理解し、WindowsラップトップにPuTTYをインストールしています(申し訳ありませんが、仕事用のラップトップにはLinuxやCygwinなどをインストールできません)。これが私の人生をとても簡単にするので、どんな助けでも大歓迎です!
PuTTYはsshトンネルをサポートしています。接続、SSHツリーを展開すると、トンネルのエントリが表示されます。
ローカルトンネルは、指定したIPアドレスとポートにリモート接続するWindowsマシン上に開くlocalhostポートを生成します。たとえば、自宅のデスクトップにRDPしようとしている場合、通常は7789のようなランダムなローカルポートを選択し、デスクトップのローカルIPアドレス(1.2.3.4:3389)をリモートとして配置します。ホスト。必ず[追加]、[適用]の順にクリックしてください。この時点で、127.0.0.1:7789にrdpすると、PuTTYセッションを介して1.2.3.4:3389に接続します。
ここからがおもしろいところです。中間ボックスにポートトンネルを設定し、PuTTYでリモートポートとして指定したローカルポートを設定すると、最終的な宛先である中間ボックスを介して、PuTTYをバウンスできます。まだいくつかのssh接続を行う必要がありますが、一度設定すると、vncまたはrdpをWindowsシステムから直接クロスできるようになります。
[〜#〜]例[〜#〜]
追加ボーナス-多くの人がこれを知っているわけではありませんが、このプロセスはIPv6/IPv4トラフィックのプロキシにも使用できます。 SSHはトンネルにどのプロトコルを使用するかを考慮しないため、sshサーバーがデュアルスタック(IPv4とIPv6の両方のアドレスを持つ)であれば、理論的にはIPv4のみのシステムからIPv6のみのホストにアクセスできます。
両方のホップにPuTTYを使用する場合は、代替手段があります。この例では、ゲートウェイ#1(10.0.1.123)からゲートウェイ#2(10.0.1.456)に10.0.1.789のポート80にホップしています。
まず、ゲートウェイ#1へのホップを作成します。最初に、最初のサーバーへの接続をセットアップします。 [接続]> [SSH]> [トンネル]で、2番目のゲートウェイへのトンネルを設定します。この例では、ポート2222を2番目のゲートウェイに転送しています。
次に、2番目のホップを設定します。最初のゲートウェイを介して次のゲートウェイにトンネリングし、2番目のゲートウェイでポート転送を設定します。接続は、ポート2222のlocalhostへの接続です。これは、実行中のssh接続を介して2番目のホップにトンネルします。この接続では、ポート3333から10.0.1.789に転送するポートを設定します。
ブラウザを開いて127.0.0.1:3333に移動すると、2つのSSH接続を経由して10.0.1.789:80にトンネルします。