En curl, elige socks5h:// si el proxy debe resolver el nombre de destino. Elige socks5:// si curl debe resolverlo localmente y enviar una dirección al proxy. Ambos usan SOCKS5; la h final es una convención de URL del cliente.

Compara los modos sustituyendo el punto de escucha local por tu punto de conexión SOCKS5:

curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

Solo cambia el modo de resolución. --noproxy '' borra las reglas de exclusión del proxy para estas llamadas, y los límites de tiempo acotan la comparación. Las opciones específicas equivalentes son --socks5 y --socks5-hostname. Usa un nombre de host como destino: una dirección IP literal no necesita resolver el destino y no permite demostrar esta diferencia.

Un nombre puede existir solo en un lado

Supón que el proxy se ejecuta dentro de una red de desarrollo cuyo DNS conoce el nombre de un servicio interno. Tu portátil puede no resolverlo en modo socks5, mientras que socks5h permite que lo resuelva el proxy. Invierte la situación, con un nombre definido solo en el archivo hosts de tu portátil, y puede ser la resolución remota la que falle.

El DNS público también puede devolver direcciones distintas según la red. Si los resultados difieren, conviene comparar las direcciones elegidas y su accesibilidad, en vez de cambiar el proxy de inmediato.

  • No se puede resolver el nombre de host del proxy: ninguno de los modos puede empezar. El cliente sigue resolviendo proxy.example en socks5h://proxy.example:1080.
  • Falla la resolución local del destino: revisa el resolvedor del cliente o compara con el modo que envía el nombre de host al proxy.
  • El servidor SOCKS rechaza el destino: revisa su respuesta y su política. Que la resolución local funcione no demuestra que el destino sea accesible desde el otro extremo.
  • El túnel funciona, pero falla la verificación del certificado: investiga el TLS del destino; cambiar de modo DNS no es una solución general para los problemas de confianza.

Un nombre de prueba bajo tu control y los registros del servidor permiten confirmar qué tipo de dirección recibió un proxy que administras. Una página que muestra la IP de salida no puede hacerlo: informa de la conexión saliente, no de dónde se resolvió el DNS.

La mejora de privacidad tiene un alcance concreto

Resolver en el proxy evita la consulta local del destino para esta petición. No cifra SOCKS, no demuestra que el proxy use DNS cifrado ni encamina el tráfico de otras aplicaciones o de la precarga del navegador. Requests con soporte para SOCKS utiliza la misma distinción entre resolución local y en el proxy; otros clientes pueden ofrecer una opción en lugar de la notación de URL de curl. Elige un protocolo compatible con tu aplicación antes de copiar un punto de conexión de la lista de proxies SOCKS5.

Artículos relacionados