Lăsați destinația Java SOCKS nerezolvată
Evitați DNS-ul local al destinației la crearea unei conexiuni Java SOCKS, păstrând numele gazdei țintă.
O conexiune SOCKS poate eșua local înainte ca proxy-ul să aibă șansa de a rezolva destinația. Verificați dacă codul dvs. a rezolvat ținta în timp ce construia adresa socket-ului.
Pentru un socket Java SOCKS, păstrați numele gazdei țintă cu o adresă de destinație nerezolvată:
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);Punctul final și numele gazdei sunt substituenți; folosiți serviciul dvs. SOCKS5 sau un candidat din lista de proxy SOCKS5 pentru teste permise cu destinație publică. Diferența importantă este între rezolvarea proxy-ului pentru a-l putea atinge și păstrarea numelui destinației pentru schimbul SOCKS.
După conectare, un client HTTPS are în continuare nevoie de o sesiune TLS pentru numele gazdei destinației. Un wrapper TLS nu ar trebui să folosească numele gazdei proxy-ului ca identitate a partenerului.
Verificați și codul de nivel superior: o bibliotecă poate efectua propria căutare înainte de a apela conectorul dvs. Păstrarea unui nume de gazdă în această adresă de socket nu poate anula o căutare efectuată în altă parte a aplicației.