Pozostaw cel Java SOCKS nierozwiązany
Unikaj lokalnego DNS celu podczas tworzenia połączenia Java SOCKS, zachowując nazwę hosta docelowego.
Połączenie SOCKS może zawieść lokalnie, zanim proxy będzie miało szansę rozwiązać cel. Sprawdź, czy twój kod rozwiązał cel podczas budowania adresu gniazda.
W przypadku gniazda Java SOCKS zachowaj nazwę hosta docelowego z nierozwiązanym adresem celu:
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);Punkt końcowy i nazwa hosta to placeholdery; użyj swojej usługi SOCKS5 lub kandydata z listy proxy SOCKS5 do dozwolonych testów publicznego celu. Ważna różnica polega na rozwiązywaniu proxy, aby móc je osiągnąć, i zachowaniu nazwy celu dla wymiany SOCKS.
Po połączeniu klient HTTPS nadal potrzebuje sesji TLS dla nazwy hosta celu. Otoczka TLS nie powinna używać nazwy hosta proxy jako tożsamości peera.
Sprawdź także kod wyższego poziomu: biblioteka może wykonać własne wyszukiwanie, zanim wywoła twój łącznik. Zachowanie nazwy hosta w tym adresie gniazda nie może cofnąć wyszukiwania wykonanego gdzie indziej w aplikacji.