0.0.0.0:0 у запиті Indy UDP ASSOCIATE може бути навмисним. Запит описує очікувану UDP-точку на боці клієнта, і RFC 1928 дозволяє нулі, коли вона невідома. Він не вибирає кінцеву службу.

BND.ADDR/BND.PORT у відповіді вказують релей, на який клієнт надсилає інкапсульовані дейтаграми.

TCP control: client → SOCKS5 proxy → UDP association reply
UDP payload: client → returned relay address → target service

У Indy TIdUDPClient.Connect викликає OpenUDP прозорого проксі. TIdSocksInfo надає поля нульової асоціації. Пізніше SendBuffer передає потрібну службу в SendToUDP, який будує заголовок призначення SOCKS UDP перед даними застосунку.

Якщо асоціація успішна, але трафік не йде, перевірте повернутий релей, закодоване призначення та шлях відповіді UDP. NAT/міжмережеві екрани можуть пропускати обмін TCP, блокуючи UDP.

Тримайте керівне з'єднання TCP відкритим; його закриття завершує асоціацію. SOCKS4/4a не мають цієї операції, і сама назва SOCKS5 не гарантує, що сервер підтримує UDP.

Схожі статті