Il pacchetto socks di Node usa un'istanza SocksClient con command: 'associate' per UDP. La sua comoda factory SocksClient.createConnection() gestisce invece TCP CONNECT.

L'esempio di associazione del progetto combina il client SOCKS con un socket UDP locale separato:

  1. Stabilite UDP ASSOCIATE e mantenete la sua connessione di controllo TCP.
  2. Leggete l'host e la porta del relay restituiti dal server.
  3. Usate createUDPFrame() per incorniciare i payload in uscita con il loro indirizzo di destinazione.
  4. Inviate i datagrammi al relay, poi usate parseUDPFrame() sui frame in ingresso del relay prima di consegnare i payload all'applicazione.

Il socket dgram di Node fornisce il trasporto UDP; non interpreta un URL SOCKS. L'associazione e l'incorniciatura forniscono il protocollo del proxy attorno a quei datagrammi.

Il server deve supportare UDP e l'endpoint del relay deve essere raggiungibile. Una connessione TCP riuscita alla porta iniziale del proxy non verifica quel percorso. Chiudete le risorse di controllo e UDP quando l'associazione non serve più.

Articoli correlati