Пакіньце прызначэнне Java SOCKS нявырашаным
Пазбягайце лакальнага DNS прызначэння пры стварэнні злучэння Java SOCKS, захоўваючы імя мэтавага хаста.
Злучэнне SOCKS можа збавіць лакальна яшчэ да таго, як проксі зможа вызначыць прызначэнне. Праверце, ці ваш код вызначыў мэту пры пабудове адраса сокета.
Для сокета Java SOCKS захавайце імя мэтавага хаста з нявырашаным адрасам прызначэння:
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);Канчатковы пункт і імя хаста — гэта запаўняльнікі; выкарыстайце свой сэрвіс SOCKS5 або кандыдата з спісу проксі SOCKS5 для дазволеных тэстаў публічных прызначэнняў. Важнае адрозненне — паміж вызначэннем проксі, каб да яго дабрацца, і захаваннем імя прызначэння для абмену SOCKS.
Пасля злучэння кліенту HTTPS усё яшчэ патрэбна сесія TLS для імя хаста прызначэння. Абгортка TLS не павінна выкарыстоўваць імя хаста проксі як ідэнтычнасць суразмоўцы.
Праверце таксама код вышэйшага ўзроўню: бібліятэка можа выканаць уласны пошук перш чым выклікаць ваш канэктар. Захаванне імя хаста ў гэтым адрасе сокета не можа адмяніць пошук, выкананы ў іншым месцы праграмы.