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.

Articole similare