Пакет socks для Node використовує для UDP екземпляр SocksClient з command: 'associate'. Його зручна фабрика SocksClient.createConnection() натомість обробляє TCP CONNECT.

Приклад асоціації в проєкті поєднує клієнт SOCKS з окремим локальним UDP-сокетом:

  1. Встановіть UDP ASSOCIATE і збережіть його керівне TCP-з'єднання.
  2. Прочитайте хост і порт ретранслятора, які повертає сервер.
  3. Використовуйте createUDPFrame(), щоб обрамляти вихідні дані адресою призначення.
  4. Надішліть датаграми ретранслятору, потім застосовуйте parseUDPFrame() до вхідних кадрів ретранслятора, перш ніж передавати дані застосунку.

Сокет dgram у Node забезпечує транспорт UDP; він не інтерпретує адресу SOCKS. Асоціація та обрамлення забезпечують протокол проксі навколо цих датаграм.

Сервер має підтримувати UDP, а кінцева точка ретранслятора має бути доступною. Успішне TCP-з'єднання з початковим портом проксі не перевіряє цей шлях. Закривайте керівні ресурси та ресурси UDP, коли асоціація більше не потрібна.

Схожі статті