🐈

シンプルな構成で SSH ローカルポートフォワード

に公開

2025 年 7 月にシステム開発部に加わりました goa です!
趣味はサウナです。家事を時短できると喜びを感じます。

今回の記事では、わかっていなかった SSH ローカルポートフォワードについてシンプルな構成で動作検証していきたいと思います。

SSH ローカルポートフォワードとは

SSH ローカルポートフォワードは、ローカルマシンの特定のポートに届いた通信を、SSH 接続を介してリモートサーバーの特定のポートに転送する機能です。
外部へ公開していないサーバーに対して、踏み台サーバーを経由した通信を行う際に使用されることが多いと思います。

動作検証

検証内容

今回はシンプルな検証として、 EC2 上の Python HTTP サーバー(ポート 8000)にローカル PC(localhost:18000)からアクセスできることを確認していきます。

環境設定

EC2

パブリックサブネットで EC2 インスタンスを起動します。
キーペアファイル(.pem)を ~/.ssh/key-pair.pem に保存しているものとして以降の説明を進めます。

EC2 セキュリティグループ

セキュリティグループで以下のルールを設定します。

タイプ ポート ソース
SSH 22 自宅のIP

EC2 内 Python サーバー

EC2 インスタンスにログインして、Python HTTP サーバーを起動します。

# EC2 インスタンスにログイン
ssh -i ~/.ssh/key-pair.pem ec2-user@<EC2のパブリックIP>

# 表示用の HTML ファイルを作成
cat << 'EOF' > index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <p>SSH ローカルポートフォワード経由でアクセス成功</p>
</body>
</html>
EOF

# Python HTTP サーバーを起動(ポート 8000 でリッスン)
python3 -m http.server 8000

動作確認

SSH ローカルポートフォワードを実行

新しいターミナルを開き、以下のコマンドで SSH ローカルポートフォワードを実行します。

ssh -i ~/.ssh/key-pair.pem \
    -L 18000:localhost:8000 \
    ec2-user@<EC2のパブリックIP>
  • -L 18000:localhost:8000: ローカルの 18000 ポートを EC2 の localhost:8000 に転送

ブラウザで確認

レスポンスが確認できました。

今回はシンプルな検証でしたが、ポート番号や宛先ホストを変えることで、踏み台サーバー経由で外部公開していないリソースへ安全にアクセスできます。

最後に

TRUSTART株式会社は、一緒に働くメンバーを募集しています!
インターンメンバーも大募集中です!
興味を持っていただいた方は、ぜひ弊社のページをご確認ください!!!

https://www.trustart.co.jp/recruit/

TRUSTARTテックブログ

Discussion