はい。SOCKS5はUDP中継を定義しています。ただし、クライアントとサーバーの両方が実装し、ネットワークがその通信を許可している必要があります。

UDP関連付けの仕組み

クライアントはTCP制御接続でUDP ASSOCIATEを送ります。成功した応答にはUDPリレーのアドレスとポートが含まれます。クライアントはSOCKS形式のUDPデータグラムを、応答で返された接続先へ送ります。元のプロキシポートと同じとは限りません。TCP制御接続を閉じると関連付けは終了します。

同じサーバー経由でHTTPSを取得しても、検査するのはTCP接続です。UDP ASSOCIATEを使うわけではなく、データグラムが宛先に届くことも証明しません。

アプリケーション側の対応が重要

ChromiumのSOCKS5処理が扱うのはTCPベースのURLリクエストで、UDPは中継できません。そのため、このブラウザでSOCKS5を設定しても、ゲームや音声アプリのUDPパケットの経路は用意されません。

UDPを使う場合は、アプリの文書にあるプロキシ対応と接続先のUDP機能を確認します。その後、自分で管理する宛先に対して必要な操作を試します。TCP到達性、UDP関連付け、データグラムの配送は別々に記録し、最初の段階の成功が後段の失敗を隠さないようにしてください。

互換性のあるUDPプロキシ機能を持たないアプリには、別のルーティング方法が必要です。SOCKS5サーバーだけを変えても、不足している機能は補えません。

関連記事