SOCKS【SOCKS5】
概要

SOCKSサーバは内部ネットワークのクライアントと外部のサーバの間に立ち、接続要求を受け取って目的のサーバへ転送する役割を担う。通信内容自体を解釈せず転送のみを仲介するため、上位層で動作するアプリケーションプロトコルの種類を限定しない。Webブラウザに限らず、メールソフトやファイル転送ソフト、遠隔操作ツールなど様々なアプリケーションで利用される。
利用にはクライアント側のソフトウェアがSOCKSによる通信に対応している必要がある。オペレーティングシステム(OS)や専用ソフトウェアによってSOCKS経由の通信を行えるよう設定する場合もあり、利用者からは通常のネットワーク接続とほぼ同様に扱える。接続先の指定や経路の選択はSOCKSサーバを通じて行われる。
現在広く普及しているのは「SOCKS5」であり、IETFによってRFC 1928として標準化されている。旧版の「SOCKS4」はTCP通信のみを扱っていたのに対し、SOCKS5ではUDP通信の中継に対応し、認証方式の拡張やIPv6への対応も加わった。許可された利用者のみが通信できるよう認証を行ったり、使用できるプロトコルを制限したりすることも可能である。
中継する通信の方向は双方向に設定できる。内部から外部への接続のみを許可してファイアウォールとして運用したり、逆に外部からの接続を許可して認証された利用者だけが内部のサーバと通信できるリモートアクセスの手段として利用することもできる。複数のSOCKSサーバを連結し、多段階の中継を構成することも可能である。
近年では企業などの境界防御といった用途だけでなく、VPNの代替や個人の通信における匿名化、転送経路の変更手段などとしてSOCKSプロキシが使われる場面も増えている。SSHのポートフォワーディング機能を利用して一時的なSOCKSプロキシを構築し、安全な経路で通信を中継する用途も広まっている。なお、SOCKS自体は暗号化機能を持たないため通信内容の秘匿は保証されず、必要に応じてSSL/TLSなど別の手段と組み合わせて使われることが多い。