El paquete socks de Node usa una instancia SocksClient con command: 'associate' para UDP. Su cómoda fábrica SocksClient.createConnection(), en cambio, gestiona TCP CONNECT.

El ejemplo de asociación del proyecto combina el cliente SOCKS con un socket UDP local independiente:

  1. Establezca UDP ASSOCIATE y conserve su conexión de control TCP.
  2. Lea el host y el puerto del repetidor que devuelve el servidor.
  3. Use createUDPFrame() para entramar las cargas salientes con su dirección de destino.
  4. Envíe los datagramas al repetidor y luego use parseUDPFrame() en las tramas entrantes del repetidor antes de entregar las cargas a la aplicación.

El socket dgram de Node proporciona el transporte UDP; no interpreta una URL SOCKS. La asociación y el entramado aportan el protocolo del proxy en torno a esos datagramas.

El servidor debe admitir UDP y el extremo del repetidor debe ser accesible. Una conexión TCP correcta al puerto inicial del proxy no prueba esa ruta. Cierre los recursos de control y UDP cuando la asociación ya no sea necesaria.

Artículos relacionados