Configuras el proxy, abres un verificador de IP y aparece la dirección del proxy. ¿Todo bien? No siempre. Según cómo esté configurado el cliente, la consulta DNS sigue saliendo por tu internet, y eso aparece en las pruebas de fuga como un origen que no coincide con la IP.
Con SOCKS5, la causa casi siempre es una letra: socks5 en lugar de socks5h.
Qué ocurre antes de la conexión
Para acceder a exemplo.com.br, el programa primero tiene que averiguar la dirección IP de ese nombre. Ese paso es la consulta DNS. Solo después se abre la conexión.
La pregunta es: ¿quién hace la consulta DNS, tu máquina o el proxy?
| Esquema | Quién resuelve el nombre | Qué recibe el proxy |
|---|---|---|
socks5:// |
Tu máquina | La IP ya resuelta |
socks5h:// |
El proxy | El nombre del sitio |
Con socks5, la consulta DNS sale por tu conexión antes de que la petición pase por el proxy. El sitio ve la IP del proxy, pero el servidor DNS ve tu origen. Con socks5h, el nombre va al proxy, que lo resuelve de su lado. La letra h viene de hostname.
Fuga de DNS: qué es
La fuga de DNS (DNS leak) es el nombre de esa situación: el tráfico sale por el proxy o por la VPN, pero la consulta de nombres sigue yendo al DNS de tu conexión. El destino ve la IP del proxy; tu proveedor de internet, y cualquier prueba de fuga, ve que consultaste exemplo.com.br. Para un uso personal es una cuestión de privacidad. Para operar cuentas es una cuestión de coherencia: la dirección de salida dice "país A, operador X" y la consulta DNS dice "otro proveedor, otra ciudad".
Por qué importa
- Coherencia de origen. Una prueba de fuga que muestra el DNS de un operador y la IP de otro indica una configuración incoherente.
- Resultados por región. Algunos servicios responden con direcciones distintas según el origen de la consulta DNS. Resolver en tu máquina puede traer el servidor equivocado para la región del proxy.
- Red corporativa. En redes que filtran el DNS, la consulta local puede bloquearse aunque el proxy esté configurado.
Cómo corregirlo en cada cliente
En los ejemplos, sustituye usuario, senha (contraseña), host y porta (puerto) por los datos de tu proxy.
curl
# resolve na sua máquina
curl -x socks5://usuario:senha@host:porta https://exemplo.com.br
# resolve no proxy
curl -x socks5h://usuario:senha@host:porta https://exemplo.com.br
El primer comando resuelve en tu máquina; el segundo, en el proxy. La opción equivalente en línea de comandos es --socks5-hostname.
Python (requests con soporte SOCKS instalado)
proxies = {
"http": "socks5h://usuario:senha@host:porta",
"https": "socks5h://usuario:senha@host:porta",
}
requests.get("https://exemplo.com.br", proxies=proxies)
Node.js (agente SOCKS)
const { SocksProxyAgent } = require("socks-proxy-agent");
const agent = new SocksProxyAgent("socks5h://usuario:senha@host:porta");
Si la contraseña tiene caracteres especiales, codifícala antes de montar la URL: es uno de los errores recogidos en errores comunes de configuración.
Cómo confirmar que ya no hay fuga
- Abre una prueba de fuga de DNS con la misma configuración del proxy.
- Mira si los servidores DNS que aparecen son coherentes con el origen del proxy, y no con tu operador.
- Compara antes y después del cambio a
socks5h.
El paso a paso completo de verificación, incluido WebRTC en el navegador, está en probar un proxy online.
SOCKS5 o HTTP, al final
Si la herramienta acepta los dos y no tienes un motivo técnico para usar SOCKS5, HTTP suele ser lo más sencillo y compatible. SOCKS5 con resolución remota tiene sentido cuando la aplicación no es un navegador, cuando pide SOCKS5 o cuando el DNS tiene que salir por el mismo origen.
En ProxyBox, IPv4, ISP y residencial entregan los dos puertos con el mismo usuario y contraseña, así que puedes probar los dos sin volver a comprar. Qué tipos de IP aceptan SOCKS5 y cuándo usar cada uno está en proxy SOCKS5. Lo que ningún ajuste de DNS resuelve: la huella del navegador, el comportamiento de la cuenta y los términos de la plataforma siguen contando igual.