SSHポートフォワーディングのまとめ
普段何気なく利用しているSSHのポートフォワード。
よくコマンドを忘れてしますのでまとめてみました。 ひとえにポートフォワードといっても、
- ローカルフォーワード
- リモートフォワード
があります。
SSHローカルフォワード
<Local> port:8080 --- via SSH -------- ------------>>> <Remote Host> ----->>> <Target Host> port:80
ローカルホストの特定ポートへの情報をターゲットホストの特定のポートへ転送する技術です。 ローカルホストの特定のポートを、SSHトンネルを介してリモートホストへ接続して、接続先のリモートホストから接続が可能なターゲットの特定のポートにマッピング。 上の例だと、ローカルホストのポート8080を、ターゲットホストのポート80にマッピングしています。
ローカルフォワーディングのコマンド
$ ssh -N -f -L <Local Port>:<Target Host>:<Target Port> <Remote Host>
上のコマンドで-N、-fオプションはそれぞれ。
- -N : コマンドを発行しない
- -f : バッググランド実行
SSHリモートフォワード
<Local> port:9000 <<<--- via SSH -------- ------------- <Remote Host> <<<----- <Target Host> port:9001
リモートホストの特定ポートへの情報をローカルホストの特定のポートへ転送する技術。 ローカルホストのポートとターゲットホストのポートのマッピングはローカルホストと同じ、コマンドオプションが違うだけ。
SSHリモートフォワーディングのコマンド
$ ssh -N -f -R <Target port>:<Target Host>:<Local Port> <Remote Host>
xdebugなど、ターゲットホストからローカルホストへ接続する必要があるものなどで役に立ちます。
簡単にまとめて、それでは。