Ang koneksyon ng SOCKS ay maaaring mabigo nang lokal bago magkaroon ng pagkakataon ang proxy na lutasin ang destinasyon. Suriin kung nilutas ng iyong code ang target habang binubuo ang address ng socket.

Para sa socket ng Java SOCKS, panatilihin ang pangalan ng target na host na may hindi nalutas na address ng destinasyon:

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

Ang endpoint at pangalan ng host ay mga placeholder; gamitin ang iyong serbisyo ng SOCKS5 o isang kandidato mula sa listahan ng proxy ng SOCKS5 para sa pinapayagang pagsubok sa pampublikong destinasyon. Ang mahalagang pagkakaiba ay nasa pagitan ng paglutas sa proxy upang maabot ito at ng pagpapanatili ng pangalan ng destinasyon para sa palitan ng SOCKS.

Kapag nakakonekta na, kailangan pa rin ng kliyenteng HTTPS ng sesyon ng TLS para sa pangalan ng host ng destinasyon. Hindi dapat gamitin ng TLS wrapper ang pangalan ng host ng proxy bilang pagkakakilanlan ng peer.

Suriin din ang code sa mas mataas na antas: ang isang library ay maaaring gumawa ng sarili nitong paghahanap bago tawagin ang iyong connector. Ang pagpapanatili ng pangalan ng host sa address ng socket na ito ay hindi makakapagpawalang-bisa sa paghahanap na ginawa sa ibang bahagi ng aplikasyon.

Kaugnay na mga artikulo