Asociaciones UDP de SOCKS5 con el paquete socks de Node
Use una asociación SOCKS5 y el entramado de datagramas cuando una aplicación Node necesite UDP a través de un proxy.
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:
- Establezca UDP ASSOCIATE y conserve su conexión de control TCP.
- Lea el host y el puerto del repetidor que devuelve el servidor.
- Use
createUDPFrame()para entramar las cargas salientes con su dirección de destino. - 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.