【エンジニアリング基礎】SSHのLocalForward

本稿では,SSHのLocalForward(ローカルポートフォワード)について説明します。

目次

結論

SSHのLocalForwardとは,SSHセッション内でlocalhostのあるポートに対する通信をリモートのポートに転送する仕組みである。ローカルからリモートに対するアウトバウンド通信で,ポートが制限されている場合等で利用される。

詳細

localhostの8080ポートに対する通信をリモートの80ポートに転送したい場合は,下記のコマンドを利用します。

ssh -i ~/.ssh/{秘密鍵ファイル} -L 8080:localhost:80 {ユーザ名}@{ホスト名}

8080:localhost:80は「リモートの8080ポートをlocalhostの80ポートに転送する」という意味です。

SSH configで利用する場合は,下記のような記法を用います。

Host {ホストに付けるエイリアス}
  HostName {ホストのIP/ホストのDNS名}
  Port 443
  IdentityFile ~/.ssh/{秘密鍵ファイル}
  User {ユーザ名}
  LocalForward 8080 localhost:80

LocalForward 8080 localhost:80は「リモートの8080ポートをlocalhostの80ポートに転送する」という意味です。

具体例

netdataは19999ポートを利用しますが,クライアント側のFW等で19999へのアウトバウンドが禁止されている状況を考えます。通常,netdataは「https://{DNS名}:19999」で接続可能なのですが,それが制限されてしまっているという状況ですね。この場合,下記のようなSSH configを利用することでnetdataのコンソール画面にアクセスできます。

Host {ホストに付けるエイリアス}
  HostName {ホストのIP/ホストのDNS名}
  Port 443
  IdentityFile ~/.ssh/{秘密鍵ファイル}
  User {ユーザ名}
  LocalForward 19999 localhost:19999

localhost:19999の19999は別のポートでも構いません。

シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次