Lad Java SOCKS-destinationen forblive uopklaret
Undgå lokal DNS for destinationen, når du opretter en Java SOCKS-forbindelse, ved at bevare mål-værtsnavnet.
En SOCKS-forbindelse kan fejle lokalt, før proxyen får en chance for at opløse destinationen. Kontroller, om din kode opløste målet, mens den byggede socket-adressen.
For en Java SOCKS-socket skal du bevare mål-værtsnavnet med en uopklaret destinationsadresse:
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 værtsnavnet er pladsholdere; brug din SOCKS5-tjeneste eller en kandidat fra SOCKS5-proxylisten til tilladte offentlige destinationstests. Den vigtige forskel er mellem at opløse proxyen, så du kan nå den, og at bevare destinationsnavnet til SOCKS-udvekslingen.
Når den er forbundet, har en HTTPS-klient stadig brug for en TLS-session til destinationens værtsnavn. En TLS-indpakning bør ikke bruge proxyens værtsnavn som modpartens identitet.
Kontroller også kode på højere niveau: et bibliotek kan udføre sit eget opslag, før det kalder din connector. At bevare et værtsnavn i denne socket-adresse kan ikke fortryde et opslag, der er udført andre steder i applikationen.