ssh でポートフォワードして WebAPI をたたけるようにする

仕事で使う技術的なこと

題名はわかりにくいですが、以下の用なことを実現するための備忘録です。

Windows PCローカル環境AWS CloudPublic subnet踏み台Private subnetWebサーバー踏み台からWebサーバーへポートフォワードしてHTTPでアクセスグローバルIPアドレス:1.2.3.4ローカルIPアドレス: 192.168.0.2グローバルIPアドレス:なしローカルIPアドレス: 192.168.0.1インターネット踏み台へはSSHでアクセスブラウザからクラウド内のWebサーバーにアクセスしたい

やろうとしていることは以下の感じです。

  1. ローカルPCと踏み台間をSSH(ポート22)で接続
    • この際、ポートフォワード設定して、特定のURLとポート番号をWebサーバーに転送するようにする
  2. ローカルPCからブラウザで特定のURLをたたくと、Webサーバーからデータを取得できる

実現方法

前提

以下の方針とします。

  • Webサーバーは HTTP(ポート80)で待ち構えていること
    • http://192.168.0.1/hoge/fuga/piyo でページがあるとする
  • ローカルPCから踏み台サーバーへは、SSHでアクセスできること
  • ローカルPCからWebサーバーへのアクセスは、ポートフォワードとしてポート10000を使用すること(この値は何でもいい)
  • 踏み台サーバーからWebサーバーへはHTTPアクセスできること

ローカルPC側の設定

以下の設定を ~/.ssh/config に追記する。

# ★今回追加★
Host hoge-api 
  HostName       1.2.3.4    // 踏み台のIPアドレス
  User           hoge       // 踏み台ログイン用ユーザー名
  IdentityFile   ***.pem    // 秘密鍵のパス
  LocalForward   10000 192.168.0.1:80   // ★ここが大事。localhost:10000 の接続を、192.168.0.1:80 の接続に変換するということ
  Port           22

ローカルPCから踏み台サーバーへ接続

以下を実行し、踏み台サーバーへ接続する。

ssh hoge-api

この状態で別窓を開き、以下を実行する。

curl http://localhost:10000/hoge/fuga/piyo

以上で応答が返ってくる場合、成功です。

コメント

タイトルとURLをコピーしました