用語集

SOCKS5プロキシとは何か?

SOCKS5プロキシは、SOCKS5プロトコルを使用してクライアントと宛先の間で任意のTCPおよびUDPトラフィックを転送するプロキシサーバーです。アプリケーション層のペイロードを解析または変更することはありません。

SOCKS5とHTTPプロキシの違い、あらゆるTCP/UDPプロトコル(HTTPに限らない)をサポートする理由、およびスクレイパー、ゲームクライアント、トレントユーザーがSOCKS5を好む場面を理解する。

解説

SOCKS5はRFC 1928で定義されたトランスポート層プロキシプロトコルです。HTTPリクエストとレスポンスを解析・理解するHTTPプロキシとは異なり、SOCKS5プロキシはより低いレベルで動作します。ペイロードを検査・変更せず、あなたと宛先の間で生のTCPまたはUDPパケットを転送します。これにより、SOCKS5プロキシはTCPまたはUDP上で動作するあらゆるプロトコルを扱うことができ、ウェブトラフィックに限りません。

SOCKS5はSOCKSプロキシプロトコルの最新バージョンであり、IPv6、UDP転送、および認証方式(認証なし、ユーザー名/パスワード、GSS-API)のサポートが追加されています。ほとんどのレジデンシャルおよびISPプロキシプロバイダーは、クライアントが自身のスタックに合ったプロトコルを選択できるよう、HTTPとSOCKS5の両方でエンドポイントを公開しています。

HTTPS経由のウェブスクレイピングでは、HTTP CONNECTプロキシとSOCKS5プロキシの動作はほぼ同一です。どちらも暗号化されたTCPトラフィックをトンネリングします。違いが重要になるのは、クライアントが非HTTPプロトコル(FTP、SMTP、IRC、BitTorrent、ゲーム)を使用する場合、またはUDPサポートが特に必要な場合です。

仕組み

クライアントがSOCKS5 プロキシに接続すると、認証方式を指定する小さなハンドシェイクを送信し、次に宛先ホストとポートを含むCONNECT コマンドを送信します。プロキシはその宛先へのTCP 接続を開き、以降はクライアントと宛先の間でバイトを単純に中継します。HTTP レイヤーの認識はなく、プロキシはURL、ヘッダー、またはレスポンスボディを読み取りません。

このトランスポートレイヤーの透過性こそが、SOCKS5 がTCP ベースのあらゆるプロトコルで機能する理由です。UDP サポートは別個のUDP ASSOCIATE フローを使用し、クライアントはプロキシにUDP データグラムを送信し、プロキシがそれをターゲットに転送します。認証を使用する場合、最初のハンドシェイク時に一度だけ行われ、セッション全体に適用されます。

認証済みSOCKS5(ユーザー名/パスワード)

認証情報ベースの認証を使用したSOCKS5で、有料プロキシサービスの標準モードです。ユーザー名にはジオターゲティングやセッションパラメーターがエンコードされることが多くあります(例:`USER-country-us-session-12345`)。

認証なしのSOCKS5

認証なしのSOCKS5で、IPベースのアクセス制御で十分なプライベートネットワーク上の自己ホスト型内部プロキシに一般的に使用されます。

SOCKS5とTLS / TLSトンネリングSOCKS5

TLSでラップされたSOCKS5で、SOCKS5コントロールチャネル自体を暗号化するプライバシー重視のVPN的サービスで使用されます。レジデンシャルSOCKS5はHTTPSターゲットに対してエンドツーエンドTLS上で既に使用されているため、商用プロキシサービスでは一般的ではありません。

主な使用事例

HTTP CONNECTよりSOCKSを好むクライアントでのWebスクレイピング
非HTTPプロトコル(FTP、SMTP、IRC、IMAP)
BitTorrentおよびP2Pクライアント
ゲーミングおよびボイスクライアント(UDP サポートが重要な場合)
SOCKS5をサポートするヘッドレスブラウザおよび自動化ツール
クライアントが HTTP を使用しないネットワークレベルのルーティング
FAQ

よくある質問

よくある質問: socks5 プロキシ.

HTTPプロキシはHTTPを理解しアプリケーション層で動作しますが、SOCKS5プロキシはトランスポート層で動作しペイロードを解析せずに生のTCP/UDPを転送します。HTTPSスクレイピングにおいてはこの違いはほぼ形式的なものですが(どちらも暗号化バイトをトンネリングします)、非HTTPプロトコルをプロキシする必要がある場合はSOCKS5が優れています。

場合によってはわずかに異なります。SOCKS5にはHTTPパースのオーバーヘッドがなく、大量処理ワークロードではわずかなレイテンシ削減になる場合があります。実際にはボトルネックはほぼ常にパース処理ではなくネットワークレイテンシであるため、速度差が意味を持つことはほとんどありません。

はい。Shifter は HTTP/HTTPS と SOCKS5 の両方でレジデンシャルおよび ISP プロキシエンドポイントを公開しています。クライアントやツールが最もよくサポートするプロトコルを選択できます。同じ認証情報とジオターゲティングが両方のプロトコルで機能します。

はい。SOCKS5はUDP ASSOCIATEコマンドでUDPをサポートしていますが、実際には多くの商用プロキシサービスはTCPのみを転送します。主なユースケース(ウェブスクレイピング、アカウント管理、広告検証)がHTTPSベースであるためです。UDPサポートは主にゲーム、音声、特定のカスタムプロトコルに重要です。

本質的にそうではありません。どちらのプロトコルもエンドツーエンドで暗号化された(TLS)トラフィックを運ぶことができ、どちらも認証を使用できます。プロキシの「セキュリティ」は主に、プロキシプロトコルではなく、送信先にHTTPSを使用しているかどうかによります。SOCKS5はHTTPヘッダーを追加または変更しないため、プライバシーの観点から好まれることがあります。

はい。Playwright、Puppeteer、Selenium およびその他のヘッドレスブラウザドライバはすべて、起動オプションを通じてSOCKS5 プロキシをサポートしています。SOCKS5 はすべてのブラウザトラフィック(HTTP、HTTPS、WebSocket、フォントなど)を均一にプロキシ経由でルーティングするため、多くの自動化エンジニアがヘッドレスブラウザとの組み合わせでSOCKS5 を好んで使用しています。