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.

Relaterede artikler