La Java SOCKS-målet forbli uløst
Unngå lokal destinasjons-DNS når du oppretter en Java SOCKS-tilkobling ved å bevare målvertenavnet.
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.