O pacote socks do Node usa uma instância SocksClient com command: 'associate' para UDP. Sua fábrica conveniente SocksClient.createConnection() trata TCP CONNECT em vez disso.

O exemplo de associação do projeto combina o cliente SOCKS com um soquete UDP local separado:

  1. Estabeleça UDP ASSOCIATE e mantenha sua conexão de controle TCP.
  2. Leia o host e a porta do relé retornados pelo servidor.
  3. Use createUDPFrame() para enquadrar os payloads de saída com o endereço de destino.
  4. Envie os datagramas ao relé e, em seguida, use parseUDPFrame() nos quadros de entrada do relé antes de entregar os payloads ao aplicativo.

O soquete dgram do Node fornece o transporte UDP; ele não interpreta uma URL SOCKS. A associação e o enquadramento fornecem o protocolo do proxy em torno desses datagramas.

O servidor deve suportar UDP, e o endpoint do relé deve ser alcançável. Uma conexão TCP bem-sucedida à porta inicial do proxy não testa esse caminho. Feche os recursos de controle e UDP quando a associação não for mais necessária.

Artigos relacionados