QNetworkProxy proxy(
    QNetworkProxy::Socks5Proxy,
    QStringLiteral("proxy.example.net"),
    1080);
udpSocket->setProxy(proxy);

アプリケーションの既存の QUdpSocket に対して、bind や connect の前にこれを適用します。SOCKS サーバーは UDP アソシエーションを実装している必要があり、プロキシの機能フラグや TCP ブラウジングの成功だけではその動作を検証できません。許可された公開 UDP テストでは、SOCKS5 プロキシ一覧が候補アドレスを提供しますが、各候補の UDP アソシエーションと対象への到達性は個別に確認する必要があります。

操作Qt が文書化している SOCKS5 UDP の考慮点
bindタイムアウトする可能性がある
0 以外のローカルポートを要求そのポートが使われることを保証しない
結果を確認実際の情報は localPort と localAddress を読む

リレーは UDP 経路を追加しますが、その経路上でもパケット損失は起こり得ます。プロキシのアカウント値はオブジェクトの user/password プロパティを使います。

プロキシを変更しても接続済みのソケットは移動できません。localhost での試行も慎重に解釈してください。Qt は文書化された localhost アドレスでは connectToHost、bind、listen においてネットワークプロキシを迂回します。

関連記事