ローカルポートフォワードで外部サーバに接続する

2017-03-29

サーバに SSH 接続はできるが,外部に公開しているポートが接続しているものの他にはなく,これでは余ってるポートを使ってアプリを動かすなんてことができないので,ローカルポートフォワーディングすることにしました.

ポートフォワーディング

サーバには SSH で接続するのが一般的ですが,それが得策でなかったり不可能であったりすることもあります.また,データベースサーバなど SSH 接続ができないように組まれているものもあります.

ここで登場するのがポートフォワーディングです.

接続先のアドレスとポート番号がわかれば,ファイアウォールなどを通り抜けて接続することができます.

ポートフォワーディングには 3 タイプあります.

ローカルポートフォワーディング

パソコンからサーバに接続するタイプで,SSH 接続を利用して行います.最も一般的なポートフォワーディングで,サーバのデータを手元のパソコンで扱うときなどに利用します.

リモートポートフォワーディング

サーバからクライアントに接続すること.SSH 接続を用いる方式とトンネリング方式の 2 種類があるようです.

レンタルサーバでよくある FTP とか,会社や学校で見られるリモートデスクトップ環境とかがこれに当たります.

動的ポートフォワーディング

クライアントが外部サーバに安全に接続するための仲介役的なものらしいです.今回は関係ないのでスルー.

因みに,Dynamic Port Forwarding から DPF とも言われるようです.

TeraTerm でローカルポートフォワーディング

Windows を使っているので TeraTerm で SSH 接続していたのですが,ポートフォワーディングにも対応しているらしい!ということで,これを使います.

控えておくこと

  • 接続するサーバのアカウント,パスワード
  • 接続先サーバの IP アドレス
  • 接続するポート番号
  • ローカル環境で利用するポート番号

ローカルのポート番号は空いているものなら何でもいいです.

設定方法

TeraTerm で接続したいサーバに普通に SSH 接続し,アプリケーションの Setup > SSH Forwarding... を開きます.

Add... で接続先を追加します.入力内容は以下の通り.

  • Forward local port: ローカル環境で利用するポート番号
  • to remote machine: 接続先サーバのアドレス
  • port: 接続するポート
  • listen: 空白

これで OK を押したら設定は完了です.

ローカルから接続する

HOST を localhost に,TCP Port#: は Forward local port で設定したポートにして接続します.

接続先が見つかるとサーバのアカウントとパスワードを聞かれます.間違えずに入力すれば接続完了!

参考:Teraterm で SSH ポートフォワード~トンネリング~ | Punio Kid Works

最後に

この世界には知らないことがたくさんあるんですね.