SOCKS-yhteys voi epäonnistua paikallisesti ennen kuin välityspalvelin ehtii ratkaista kohteen. Tarkista, ratkaisiko koodisi kohteen soketin osoitetta rakentaessaan.

Säilytä Java SOCKS -soketissa kohde-isäntänimi ratkaisemattomalla kohdeosoitteella:

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);

Päätepiste ja isäntänimi ovat paikkamerkkejä; käytä SOCKS5-palveluasi tai ehdokasta SOCKS5-välityspalvelinluettelosta sallittuihin julkisten kohteiden testeihin. Tärkeä ero on välityspalvelimen ratkaisemisen (jotta voit tavoittaa sen) ja SOCKS-vaihdon kohdenimen säilyttämisen välillä.

Yhdistämisen jälkeen HTTPS-asiakas tarvitsee edelleen TLS-istunnon kohde-isäntänimelle. TLS-kääreen ei pitäisi käyttää välityspalvelimen isäntänimeä vastapuolen identiteettinä.

Tarkista myös ylemmän tason koodi: kirjasto voi tehdä oman hakunsa ennen liittimesi kutsumista. Isäntänimen säilyttäminen tässä soketin osoitteessa ei voi peruuttaa muualla sovelluksessa tehtyä hakua.

Aiheeseen liittyvät artikkelit