Laat die Java-SOCKS-bestemming onopgelos
Vermy plaaslike DNS vir die bestemming wanneer jy 'n Java-SOCKS-verbinding skep, deur die teikenhostnaam te behou.
'n SOCKS-verbinding kan plaaslik misluk voordat die proxy die bestemming kan opsoek. Gaan na of jou kode die teiken opgelos het terwyl dit die socket-adres gebou het.
Vir 'n Java-SOCKS-socket, behou die teikenhostnaam met 'n onopgeloste bestemmingsadres:
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);Die eindpunt en hostnaam is plekhouers; gebruik jou SOCKS5-diens of 'n kandidaat uit die SOCKS5-proxylys vir toegelate toetse na publieke bestemmings. Die belangrike onderskeid is tussen die oplos van die proxy sodat jy dit kan bereik en die behoud van die bestemmingsnaam vir die SOCKS-uitruiling.
Sodra dit verbind is, het 'n HTTPS-kliënt steeds 'n TLS-sessie vir die bestemmingshostnaam nodig. 'n TLS-omhulsel moet nie die proxy se hostnaam as die eweknie-identiteit gebruik nie.
Kontroleer ook hoër-vlak kode: 'n biblioteek kan sy eie opsoek doen voordat dit jou connector roep. Die behou van 'n hostnaam in hierdie socket-adres kan nie 'n opsoek ongedaan maak wat elders in die toepassing gedoen is nie.