Deixe sen resolver o destino de Java SOCKS
Evite o DNS local do destino ao crear unha conexión Java SOCKS conservando o nome de host de destino.
Unha conexión SOCKS pode fallar localmente antes de que o proxy teña a oportunidade de resolver o destino. Comprobe se o seu código resolveu o obxectivo mentres construía o enderezo do socket.
Para un socket Java SOCKS, conserve o nome de host de destino cun enderezo de destino sen resolver:
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);O punto de conexión e o nome de host son marcadores de posición; use o seu servizo SOCKS5 ou un candidato da lista de proxies SOCKS5 para probas permitidas de destinos públicos. A distinción importante está entre resolver o proxy para poder alcanzalo e conservar o nome de destino para o intercambio SOCKS.
Unha vez conectado, un cliente HTTPS aínda necesita unha sesión TLS para o nome de host de destino. Un envoltorio TLS non debe usar o nome de host do proxy como identidade da contraparte.
Comprobe tamén o código de nivel superior: unha biblioteca pode realizar a súa propia busca antes de chamar ao seu conector. Conservar un nome de host neste enderezo de socket non pode desfacer unha busca realizada noutra parte da aplicación.