connect-hendelsen i Node-socketen forteller deg at TCP nådde proxyen. Den sier ikke at proxyen har åpnet en forbindelse til målet.

En SOCKS5-server forventer metodenegotiering, eventuell valgt autentisering og en destinasjonsforespørsel før applikasjonstrafikken. Sender du en HTTP-forespørsel med en gang, kan serveren lukke forbindelsen. En senere skriving kan da gi EPIPE.

EPIPE alene beviser ikke en manglende handshake. Den rapporterer en skriving til en forbindelse der motparten ikke lenger godtar denne kommunikasjonen. Les de tidligere hendelsene og protokollsvar for å finne ut hvorfor motparten lukket.

Bruk en connector som implementerer hele SOCKS-utvekslingen. For Nodes kjerne-HTTPS-klient kan en SOCKS-bevisst agent utføre den forhandlingen før målets TLS. Hvis du implementerer utvekslingen selv, må du samle data etter protokollens feltlengder. Det er ikke garantert at én data-hendelse inneholder ett fullstendig svar, og den returnerte bundne adressen trenger ikke å samsvare med én hardkodet byte-streng.

Registrer feilhåndtering før operasjonen kan feile, behold tilkoblingsstadiet i feilrapporten, og send destinasjonsprotokollen først etter at forhandlingen har lykkes. Å fange feilen hindrer en uhåndtert hendelse; den reparerer ikke en ugyldig utveksling.

Relaterte artikler