PuTTYでポートフォワードを使う

Linuxなどで利用できるOpenSSHにはポート転送機能が利用できる。Windows上ではSSH接続にPuTTYを使用しているが、これでもポート転送が利用できるか。テスト確認した。→ 結果:可能。

以下の機能が利用できるようだ。

  • 機能
    • ローカル→リモートのポート転送
    • リモート→ローカルのポート転送
    • ローカル→リモートのポート転送で、ローカルの他ホストへのポート公開
    • リモート→ローカルのポート転送で、リモートでの他ホストへのポート公開

このうち「ローカル→リモートのポート転送」の接続確認を行った。

  • 接続形態
    • [local]--(SSH)--[remote1]--(service)--[remote2]
    • [ローカルホスト]でPuTTYを起動 → [リモートホスト1]にSSH接続して待機。
    • ローカルホストでアプリケーションを起動して、ローカル:ポートに接続。
    • [リモートホスト1]からサービス提供している[リモートホスト2]のポートに接続
    • ローカルホスト上のアプリケーションから、リモートサイトのサービスを接続して利用。

手順

  • PuTTYの設定
    • 「セッション」には通常のSSHの接続と同様の設定。ホスト名、ポート:22。
    • 接続 > SSH > トンネル > ポートフォワーディング の設定
      • "ローカル"を選択
      • 源ポート: ローカルホストでの接続用ポート番号を指定。(1023以上) (例: 10000)
      • 送り先: リモートホスト:ポート (例: 192.168.100.1:23)
      • "源ポート"、"送り先" を指定したら「追加」。複数ポート指定できるのか?
      • ローカルホストの源ポートを他ホストからも接続できるようにする場合、「ローカルポートは他ホストからの接続を受け付ける」にチェックをつける。チェックがOFFの場合は、ローカルホストからのみアプリ接続が可能。
  • 接続
    • 通常の認証過程を経て、ターミナルウィンドウが開く。
  • コマンドラインから"netstat -an"を実行。"源ポート"で指定したポートが開いている。
    • 他ホストに公開していない場合 : TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING
    • 他ホストに公開している場合 : TCP 0.0.0.0:10000 0.0.0.0:0 LISTENING
  • アプリケーションを起動。接続先を "127.0.0.1:10000" のようにする。