0Pricing
Linux Server Deployment & SSH Mastery · レッスン

SSHポートフォワーディング(ローカル/リモート)

ローカルおよびリモートのポートフォワーディングを習得し、内部サービスへ安全にアクセスしたり、ローカルサービスをリモートネットワークに公開したりします。

「SSHポートフォワーディング(ローカル/リモート)」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

SSHで安全なトンネルを構築する

SSHはログイン専用ではありません。ネットワークトラフィックを転送する安全な「トンネル」を作成できます。

この技術はポートフォワーディングと呼ばれ、通常は到達できないサービスや安全でないサービスにアクセスできるようにします。

異なるネットワークポート間に、プライベートで暗号化された橋を架けるようなものだと考えてください。

ポートフォワーディングを使う理由

ポートフォワーディングは、開発者やシステム管理者にとても役立ちます。

  • 内部サービスにアクセスする:ローカルマシンから、プライベートネットワーク上のデータベースやWeb UIにアクセスできます。
  • ローカルサービスを公開する:リモートネットワーク上の他のユーザーと、ローカルの開発サーバーを共有できます。
  • ファイアウォールを迂回する:厳格なファイアウォールの背後にあるサービスへ安全に接続できます。

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

ローカルポートフォワーディングは、ローカルマシンからリモートサーバーへ、さらに別の宛先へとつながるトンネルを作成します。

次のように指示するイメージです。「コンピューターのlocalhost:8000に送ったトラフィックを、SSH経由でremote-serverに送り、そこからinternal-db:5432へ転送してください。」

ローカルフォワーディングの構文

ローカルポートフォワーディングのコマンドでは、-Lフラグを使用します。

ssh -L [LOCAL_PORT]:[REMOTE_HOST]:[REMOTE_PORT] [SSH_USER]@[SSH_SERVER]

  • LOCAL_PORT:ローカルマシン上のポートです。
  • REMOTE_HOST:SSHサーバーが接続するホストです。
  • REMOTE_PORT:REMOTE_HOST上のポートです。
  • SSH_SERVER:SSHで接続するサーバーです。

ローカルフォワーディングのシナリオ

db.internal.network:5432でデータベースが稼働しているとします。SSHサーバー(my-server.com)からはそのデータベースに接続できますが、ノートパソコンからは接続できません。

DBeaverやpsqlなどのローカルツールを使って、このデータベースに接続したいとします。

ローカルフォワーディングを使えば、それが可能です。

ローカルフォワーディングの実践

ローカルポート5432から、my-server.comを経由してリモートデータベースdb.internal.network:5432へトンネルを開いてみましょう。

ssh -L 5432:db.internal.network:5432 user@my-server.com

これで、マシン上のlocalhost:5432への接続はすべて、安全にdb.internal.network:5432へ到達します。

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

リモートポートフォワーディングはその逆で、リモートサーバーからローカルマシンへ、さらに宛先へとつながるトンネルを作成します。

次のように指示するイメージです。「my-server.com:8080に送られたトラフィックをSSH経由でノートパソコンに送り、そこからlocalhost:3000へ転送してください。」

リモートフォワーディングの構文

リモートポートフォワーディングのコマンドでは、-Rフラグを使用します。

ssh -R [REMOTE_PORT]:[LOCAL_HOST]:[LOCAL_PORT] [SSH_USER]@[SSH_SERVER]

  • REMOTE_PORT:SSHサーバー上のポートです。
  • LOCAL_HOST:SSHサーバーが接続するホストです(通常はlocalhost)。
  • LOCAL_PORT:LOCAL_HOST上のポートです。
  • SSH_SERVER:SSHで接続するサーバーです。

リモートフォワーディングのシナリオ

ノートパソコンのlocalhost:3000でWebアプリを開発しているとします。別のネットワークにいる同僚に、そのアプリを見せたいとします。

リモートフォワーディングを使うと、パブリックなSSHサーバーのポート(例:my-server.com:8080)経由でローカルアプリにアクセスできるようにできます。

リモートフォワーディングの実践

localhost:3000で稼働しているローカルWebアプリを、my-server.comのポート8080経由で公開してみましょう。

ssh -R 8080:localhost:3000 user@my-server.com

これで、同僚はブラウザーでhttp://my-server.com:8080にアクセスして、アプリを閲覧できます。

ポートフォワーディングクイズ

SSHのポートフォワーディングは強力なツールです。次のうち、その用途を正しく説明しているものはどれでしょうか。

トンネルの構築完了

SSHポートフォワーディングを習得しました。

  • ローカルフォワーディング(-L)は、ローカルポートをリモートサービスに接続します。
  • リモートフォワーディング(-R)は、リモートサーバーのポートをローカルサービスに接続します。

これらの技術で安全な暗号化トンネルを作成し、ネットワークアクセスを効果的に管理できます。練習を続けて、日々の作業に取り入れていきましょう。

よくある質問

「SSHポートフォワーディング(ローカル/リモート)」レッスンは無料ですか?

はい。「SSHポートフォワーディング(ローカル/リモート)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。

「SSHポートフォワーディング(ローカル/リモート)」で何を学びますか?

ローカルおよびリモートのポートフォワーディングを習得し、内部サービスへ安全にアクセスしたり、ローカルサービスをリモートネットワークに公開したりします。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「SSHポートフォワーディング(ローカル/リモート)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. SSHポートフォワーディング(ローカル/リモート)
  2. SSHトンネルとSOCKSプロキシ
  3. SSHエージェントとマルチホップ
  4. SCP、SFTP、rsyncによる安全なファイル転送
← Linux Server Deployment & SSH Masteryに戻る