Tech Knowledge

IT技術者の知識共有を目的とした記事を書いています

SSH Port Forwardingについての解説と実行例

SSH Port Forwardingとは、SSH接続を利用してローカルネットワークやリモートネットワークのポートを別のポートに転送する技術です。SSH Port Forwardingには、ローカルポートフォワーディングとリモートポートフォワーディングの2種類があります。

ローカルポートフォワーディングとは、ローカルマシンのポートをSSHサーバーのポートに転送することです。例えば、ローカルマシンの8080番ポートをSSHサーバーの80番ポートに転送すると、ローカルマシンからhttp://localhost:8080にアクセスすると、SSHサーバーのWebサーバーにアクセスできます。これは、SSHサーバーがファイアウォールで外部からのアクセスを制限している場合や、SSHサーバーがプライベートネットワークにある場合に便利です。ローカルポートフォワーディングのコマンドは以下のようになります。

ssh -L 8080:localhost:80 user@ssh-server

リモートポートフォワーディングとは、SSHサーバーのポートをローカルマシンのポートに転送することです。例えば、SSHサーバーの8080番ポートをローカルマシンの80番ポートに転送すると、SSHサーバーからhttp://localhost:8080にアクセスすると、ローカルマシンのWebサーバーにアクセスできます。これは、ローカルマシンがファイアウォールで外部からのアクセスを制限している場合や、ローカルマシンがプライベートネットワークにある場合に便利です。リモートポートフォワーディングのコマンドは以下のようになります。

ssh -R 8080:localhost:80 user@ssh-server

SSH Port Forwardingは、セキュアな通信チャンネルを作ることができるだけでなく、様々なユースケースがあります。例えば、以下のような場面で活用できます。

  • ローカルマシンで開発したWebアプリケーションをSSHサーバー経由で公開する
  • SSHサーバー上で動作するデータベースやAPIなどにローカルマシンから安全にアクセスする
  • SSHサーバー上で動作するWebアプリケーションをローカルマシンでデバッグする
  • ローカルマシン上で動作するWebアプリケーションをSSHサーバー経由でテストする

SSH Port Forwardingは、簡単なコマンドで実現できる技術です。ぜひ試してみてください。

Written with Copilot