Das Node-Paket socks verwendet für UDP eine SocksClient-Instanz mit command: 'associate'. Die praktische Fabrik SocksClient.createConnection() behandelt stattdessen TCP CONNECT.

Das Assoziationsbeispiel des Projekts kombiniert den SOCKS-Client mit einem separaten lokalen UDP-Socket:

  1. Stellen Sie UDP ASSOCIATE her und halten Sie die TCP-Kontrollverbindung offen.
  2. Lesen Sie Host und Port des Relays, die der Server zurückgibt.
  3. Verwenden Sie createUDPFrame(), um ausgehende Nutzlasten mit ihrer Zieladresse zu rahmen.
  4. Senden Sie die Datagramme an das Relay und verwenden Sie dann parseUDPFrame() auf eingehenden Relay-Frames, bevor Sie Nutzlasten an die Anwendung ausliefern.

Der dgram-Socket von Node liefert den UDP-Transport; er interpretiert keine SOCKS-URL. Assoziation und Framing liefern das Proxy-Protokoll um diese Datagramme herum.

Der Server muss UDP unterstützen, und der Relay-Endpunkt muss erreichbar sein. Eine erfolgreiche TCP-Verbindung zum anfänglichen Proxy-Port prüft diesen Pfad nicht. Schließen Sie die Kontroll- und UDP-Ressourcen, wenn die Assoziation nicht mehr benötigt wird.

Ähnliche Artikel