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

SSHトンネルとSOCKSプロキシ

暗号化通信のための安全なSSHトンネルを作成し、匿名ブラウジングやネットワーク制限の回避に使えるSOCKSプロキシを設定します。

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

SSHトンネルの概要

SSHトンネルへようこそ。物理的なトンネルではなく、SSHサーバー経由でネットワークトラフィックを転送できる安全な接続です。

パブリックネットワークを通る秘密の暗号化経路を作るようなものだと考えてください。この経路によって、本来はブロックされている、または安全でないサービスにアクセスできます。

SSHトンネルを使う理由

SSHトンネルは、開発者やシステム管理者にとって非常に柔軟な仕組みです。次のことが可能になります。

  • ファイアウォールを迂回する:パブリックインターネットに公開されていない内部サービスにアクセスします。
  • 暗号化されていないトラフィックを安全にする:通常は安全でない状態で送信されるデータ(古いプロトコルなど)を暗号化します。
  • 制限されたリソースにアクセスする:パブリックネットワークからプライベートネットワーク上のサービスへ、またはその逆方向にアクセスします。

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

ローカルポートフォワーディングとは、SSHサーバーを経由して、ローカルマシン上のポートをリモートマシン上のポートに接続する仕組みです。

SSHサーバーは仲介役として機能します。ローカルアプリケーションがローカルポートに接続すると、SSHがそのトラフィックを指定されたリモートホストとポートへ安全に転送します。

ローカルフォワーディング:コマンド

ローカルポートフォワーディングの構文はシンプルです。

ssh -L [local_port]:[remote_host]:[remote_port] [user]@[ssh_server]

次は、ssh-gatewayサーバーを経由して、db-server(ポート3306)で稼働しているデータベースにアクセスする例です。

ssh -L 8080:db-server:3306 user@ssh-gateway.com

ローカルフォワーディング:実践的な利用

前のシーンのコマンドを実行すると、ローカルのデータベースクライアントをlocalhost:8080に接続できるようになります。

localhost:8080に送信したすべてのトラフィックは、ssh-gateway.comを経由してdb-server:3306へ安全に転送されます。プライベートなデータベースやWebサービスへのアクセスに便利です。

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

リモートポートフォワーディングは、ローカルフォワーディングの逆です。ローカルマシンで稼働しているサービスを、リモートSSHサーバー上のポートに公開できます。

これにより、他のユーザーはリモートSSHサーバー上のポートに接続し、そのトラフィックをローカルサービスへ安全に転送できます。

リモートフォワーディング:コマンド

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

ssh -R [remote_port]:[local_host]:[local_port] [user]@[ssh_server]

ローカルのポート8000でWebサーバーを稼働させていて、ssh-gatewayのポート8888経由で他のユーザーからアクセスできるようにするとします。

ssh -R 8888:localhost:8000 user@ssh-gateway.com

リモートフォワーディング:実践的な利用

リモートトンネルを確立すると、ssh-gateway.comに到達できるユーザーは誰でも、ssh-gateway.com:8888に接続してローカルWebサーバーにアクセスできるようになります。

チームメンバーとローカル開発サーバーを共有したり、ローカルマシンに接続する必要があるWebhookに対応したりする場合に便利です。

SSH経由のSOCKSプロキシ

SOCKSプロキシを使用すると、アプリケーション(Webブラウザーやチャットクライアントなど)のすべてのトラフィックをSSHサーバー経由でルーティングできます。閲覧の匿名化やネットワーク制限の回避によく使われます。

-Dフラグを使うと、ローカルポートにSOCKSプロキシを作成できます。

ssh -D 9999 user@ssh-gateway.com

SOCKS用にクライアントを設定する

ssh -D 9999 user@ssh-gateway.comを実行すると、localhost:9999でSOCKSプロキシが起動します。

次に、Webブラウザー(またはその他のアプリケーション)で、localhostをポート9999のSOCKS5プロキシとして設定します。これで、そのアプリケーションからのインターネットトラフィックはすべて、ssh-gateway経由で安全にルーティングされます。

トンネル理解度チェック

ローカルマシン(localhost)から、internal-app.local:80で稼働しているプライベートな内部Webサービスにアクセスしようとしています。jump-host.comへのSSHアクセス権があります。

ローカルポート8080を内部Webサービスへ転送するには、どのSSHコマンドを使用しますか。

トンネルとプロキシのまとめ

SSHトンネルを習得しました。次の内容を扱いました。

  • ローカルポートフォワーディング(-L):ローカルマシンからリモートサービスにアクセスします。
  • リモートポートフォワーディング(-R):ローカルサービスをリモートSSHサーバーに公開します。
  • SOCKSプロキシ(-D):プライバシー保護や制限回避のため、すべてのアプリケーションのトラフィックをSSHサーバー経由でルーティングします。

これらの技術は、開発やシステム管理において、安全かつ柔軟なネットワークアクセスを実現する強力なツールです。

よくある質問

「SSHトンネルとSOCKSプロキシ」レッスンは無料ですか?

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

「SSHトンネルとSOCKSプロキシ」で何を学びますか?

暗号化通信のための安全なSSHトンネルを作成し、匿名ブラウジングやネットワーク制限の回避に使えるSOCKSプロキシを設定します。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「SSHトンネルとSOCKSプロキシ」レッスンにはどのくらい時間がかかりますか?

ほとんどの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に戻る