Webマーケに役立つツールやノウハウ、プログラミングのちょっとしたTipsなどを記録したノートです。

SOCKSプロキシとは? HTTPプロキシとの違いは?

通常、プロキシといえばHTTPプロキシのことを指すことが多いですが、プロキシを説明する際に時折出てくる「SOCKS」のことはよくわからない、という方は少なくないと思います。今回はSOCKSについて整理して見ました。

SOCKSとは

SOCKSは、ネットワーク・ファイアウォール越えやアクセス制御等を目的として、クライアントサーバ型のプロトコルが、透過的に使用できるよう設計されたプロキシ(proxy)のプロトコル、及びシステム(の一つ)である。”SOCKetS” の略。

引用:ウィキペディア

SOCKSはTCPやUDPとアプリケーションプロトコルの中間で動作するため、プロトコルの種類に拠らず透過的に利用することができる。

引用:IT用語辞典 e-Words

なかなか小難しい説明ですね。。
SOCKSはプロキシの一種で、ファイアーウォールなどのアクセス制限がある場合でも通信できるように設計されたプロトコル(通信規約)のことです。もう少し読み進めながら理解を深めましょう。

SOCKSプロキシとは

ウィキペディアの説明ですでに出ていますが、SOCKSそのものがプロキシのプロトコル(の一つ)ということなので重複している表現とも感じられます。SOCKSを使ったプロキシだと明示的に示す時に使われるようです。似たような表現としてHTTPプロキシ、ウェブプロキシ、アノニマスプロキシ、などどんなプロキシなのかを形容するため、あえて特徴的な機能を頭につけた表現と言えます。

HTTPプロキシとの違い

プロキシは利用者(クライアント)とサーバー間の間で利用者の仲介役として機能します。単にプロキシというと、通常はHTTP通信を仲介するプロキシのことを指すことが多いですが、言葉の定義としては意味が広くなるため、対象をHTTP通信を利用したプロキシに特定する際に「HTTPプロキシ」と表現します。

ファイアーウォールが設定されている場合、HTTP/HTTPSなどの許可されたプロトコル以外の通信は遮断されてしまいます。FTPやSSHなどのプロトコルをファイアーウォールを超えて通信したい場合にはSOCKSを使います。
SOCKSプロキシを使うことで、HTTP/HTTPS以外のプロトコルでプロキシを利用することができます。

SOCKS4とSOCKS5の違いは?

どちらもSOCKプロトコルのバージョン違いですが、より新しいSOCKS5の方が優れています。
SOCKS4はTCPとわずかな認証機能しかサポートしませんが、SOCKS5はUDP、DNSの名前解決、様々な認証メカニズムをサポートします。

まとめ

いかがでしょうか。SOCKSの理解が少しでも高まれば嬉しいです。
SOCKSが使える商用プロキシサービスを検討している方には、別の記事で紹介したBright Data【旧Luminati(ルミナティ)】がおすすめです。世界最大規模のプロキシネットワークを7日間無料で体験できます。気になる方は、公式サイトから体験版にエントリーしてまずは無料で使ってみましょう。
それでは、Have a nice Internet Life!