En SOCKS-tilkobling kan feile lokalt før proxyen får sjansen til å slå opp målet. Sjekk om koden din slo opp målet mens den bygde socket-adressen.

For en Java SOCKS-socket, behold målvertenavnet med en uløst destinasjonsadresse:

Proxy proxy = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("203.0.113.10", 1080));
Socket socket = new Socket(proxy);
socket.connect(InetSocketAddress.createUnresolved(
    "destination.example", 443), 5000);

Endepunktet og vertsnavnet er plassholdere; bruk SOCKS5-tjenesten din eller en kandidat fra SOCKS5-proxy-listen for tillatte tester mot offentlige mål. Den viktige forskjellen er mellom å slå opp proxyen slik at du kan nå den, og å bevare målnavnet for SOCKS-utvekslingen.

Når du er tilkoblet, trenger en HTTPS-klient fortsatt en TLS-økt for destinasjonens vertsnavn. En TLS-innpakning bør ikke bruke proxyens vertsnavn som motpartens identitet.

Sjekk også kode på høyere nivå: et bibliotek kan utføre sitt eget oppslag før det kaller tilkoblingen din. Å bevare et vertsnavn i denne socket-adressen kan ikke angre et oppslag som er gjort andre steder i applikasjonen.

Relaterte artikler