Le paquet socks de Node utilise une instance SocksClient avec command: 'associate' pour UDP. Sa fabrique pratique SocksClient.createConnection() gère plutôt TCP CONNECT.

L'exemple d'association du projet combine le client SOCKS avec une socket UDP locale distincte :

  1. Établissez UDP ASSOCIATE et conservez sa connexion de contrôle TCP.
  2. Lisez l'hôte et le port de relais renvoyés par le serveur.
  3. Utilisez createUDPFrame() pour tramer les charges sortantes avec leur adresse de destination.
  4. Envoyez les datagrammes au relais, puis utilisez parseUDPFrame() sur les trames entrantes du relais avant de remettre les charges à l'application.

La socket dgram de Node fournit le transport UDP ; elle n'interprète pas une URL SOCKS. L'association et le tramage apportent le protocole du proxy autour de ces datagrammes.

Le serveur doit prendre en charge UDP, et le point de terminaison du relais doit être joignable. Une connexion TCP réussie vers le port initial du proxy ne teste pas ce chemin. Fermez les ressources de contrôle et UDP lorsque l'association n'est plus nécessaire.

Articles similaires