Linuxコマンド:sshでポートフォワーディング

フォワーディング (forwarding)とは、簡単に日本語にすると「転送する」ことです。ポートフォワーディングは、マシンの指定したポートに来たパケットを、指定した宛先に転送してあげることです。

ここでは、SSHを利用した代表的なポートフォワーディング設定例を紹介します。

使用例

ローカルポートをリモートへ転送する

上の図のような環境で、PCからWebサーバーにhttp接続したい場合は、中継サーバーを経由してローカルポートを転送するよう設定します。

たとえば、PC上のtcp10080番ポートに送信されたパケットを、中継サーバーを経由しWebサーバーのtcp80番ポートに転送するよう設定することで、PC上でhttp://localhost:10080を叩くとhttp://192.168.1.201のコンテンツを表示することができます。

PC上で実行するコマンドは次のとおりです。

ssh 192.168.1.200 -L 10080:192.168.1.201:80 -N

リモートポートをローカルに転送する

上の図のような環境で、中継サーバーがインターネットへ出るためには、PCを経由してリモートポートを転送するよう設定します。

たとえば、中継サーバーのtcp9090番ポートへの接続を、PCを経由してProxyサーバーのtcp8080番ポートへ転送することで、中継サーバーがインターネットへ出ることができるようになります。

PC上で実行するコマンドは次のとおりです。

ssh 192.168.1.200 -R 9090:192.168.0.101:8080

まとめ

暗号化されていない通信(vnc、http、popなど)と、sshポートフォワーディングを組み合わせることで通信の安全性を高めることがでます。お試しあれ。

スポンサーリンク