SOCKS プロキシ
約 4 分で読めます
最終更新: 2026-02-20
SOCKS プロキシとは
SOCKS (Socket Secure) プロキシとは、TCP/UDP レベルで通信を中継する汎用的なプロキシサーバーです。HTTP プロキシがブラウザの Web 通信だけを中継するのに対し、SOCKS プロキシはプロトコルを問わず、あらゆるアプリケーションの通信を中継できます。
SOCKS プロキシはアプリケーション層のデータを解釈せず、単純にパケットを転送します。そのため、メール (SMTP/IMAP)、ファイル転送 (FTP)、SSH、P2P 通信など、HTTP 以外のプロトコルにも対応できる柔軟性を持っています。
SOCKS4 / SOCKS4a / SOCKS5 の違い
実務では SOCKS5 を選択するのが基本です。UDP 対応により、DNS クエリや VoIP、ストリーミングなどリアルタイム性が求められる通信も中継できます。
SSH ダイナミックポートフォワーディング
SOCKS プロキシを最も手軽に構築する方法が、SSH のダイナミックポートフォワーディングです。リモートサーバーへの SSH アクセス権があれば、追加のソフトウェアなしに暗号化された SOCKS5 プロキシを立ち上げられます。
ssh -D 1080 -N -f user@remote-server
このコマンドでローカルのポート 1080 に SOCKS5 プロキシが起動します。-N はリモートでコマンドを実行しないオプション、-f はバックグラウンド実行です。あとはブラウザやアプリケーションのプロキシ設定で localhost:1080 を SOCKS5 プロキシとして指定するだけです。
この方式の利点は、クライアントとリモートサーバー間の通信が SSH で暗号化される点です。通常の SOCKS プロキシは通信を暗号化しませんが、SSH トンネル上で動作させることで、カフェの公衆 Wi-Fi のような信頼できないネットワークでも安全に通信できます。
実務での活用場面
- Tor ネットワーク: Tor はローカルに SOCKS5 プロキシ (通常ポート 9050) を立ち上げ、アプリケーションの通信を Tor 回線に流します。Tor Browser 以外のアプリケーション (curl、wget など) も
--socks5-hostname localhost:9050で Tor 経由の通信が可能です。 - 企業のファイアウォール越え: HTTP プロキシでは通過できない独自プロトコルの通信を、SOCKS プロキシ経由で外部に接続するケースがあります。
- アプリケーション単位のプロキシ: VPN が OS 全体の通信を転送するのに対し、SOCKS プロキシは特定のアプリケーションだけをプロキシ経由にできます。ブラウザだけプロキシ経由にし、他のアプリは直接接続するといった使い分けが可能です。
- 開発・テスト: 特定の国や地域からのアクセスをシミュレーションする際に、SOCKS プロキシ経由で接続先を切り替えることがあります。
公開 SOCKS プロキシのリスク
SOCKS プロキシ自体は通信を暗号化しません。プロキシサーバーとの間の通信は平文で流れるため、信頼できないプロキシを使うと通信内容を傍受されるリスクがあります。
インターネット上には無料の SOCKS プロキシリストが多数公開されていますが、これらの利用は極めて危険です。具体的なリスクとして、以下が挙げられます。
- 通信の傍受: HTTPS でない通信の内容 (ログイン情報、メール本文など) がプロキシ運営者に丸見えになる
- 中間者攻撃: HTTPS 通信であっても、プロキシが偽の証明書を挿入して通信を復号する攻撃が可能な場合がある
- マルウェア注入: HTTP レスポンスに悪意のある JavaScript やリダイレクトを挿入される
- ハニーポット: 法執行機関や攻撃者が意図的に公開プロキシを運営し、利用者の通信を監視している場合がある
業務利用では自前で構築するか (SSH トンネルが最も手軽)、信頼できるプロバイダーのサービスを利用しましょう。
よくある誤解
- SOCKS プロキシを使えば通信が暗号化される
- SOCKS プロキシはパケットを中継するだけで、暗号化機能は持ちません。暗号化が必要な場合は SSH トンネルや VPN と組み合わせる必要があります。
- SOCKS プロキシは VPN の代替になる
- SOCKS プロキシは特定のアプリケーションの通信だけを中継します。VPN のように OS レベルで全通信を保護するわけではなく、設定していないアプリの通信は直接インターネットに出ます。
SOCKS プロキシと HTTP プロキシの違い
SOCKS プロキシ
プロトコル非依存で TCP/UDP を中継。HTTP 以外の通信 (SSH、FTP、P2P 等) にも対応。データの中身を解釈しない。
HTTP プロキシ
HTTP/HTTPS 通信のみ中継。リクエストヘッダーの書き換えやキャッシュが可能。Web ブラウジング用途に特化。