本稿では,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は別のポートでも構いません。
コメント