SOCKS5-UDP-Assoziationen mit dem socks-Paket von Node
Verwenden Sie eine SOCKS5-Assoziation und Datagramm-Framing, wenn eine Node-Anwendung UDP über einen Proxy benötigt.
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:
- Stellen Sie UDP ASSOCIATE her und halten Sie die TCP-Kontrollverbindung offen.
- Lesen Sie Host und Port des Relays, die der Server zurückgibt.
- Verwenden Sie
createUDPFrame(), um ausgehende Nutzlasten mit ihrer Zieladresse zu rahmen. - 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.