HTTP vs SOCKS5: diferencias entre los protocolos de proxy y cuál usar
Publicado el · 3 min de lectura
Cuando configuras un proxy casi siempre te preguntan el tipo: HTTP o SOCKS5. Ambos funcionan con casi todo, pero no son iguales. Esto es lo que cambia y cómo elegir en un momento.
Cómo funciona un proxy HTTP
Un proxy HTTP habla el lenguaje de la web. Tu programa le pide una página y el proxy la obtiene por ti. Para los sitios HTTPS, es decir, casi todos, el programa usa el método CONNECT: pide al proxy que abra un túnel hacia el sitio y luego envía por él la conexión cifrada. A partir de ese momento el proxy solo reenvía bytes que no puede leer.
Es el tipo más compatible: lo admiten los navegadores, los sistemas operativos, las librerías de programación y casi cualquier programa con una opción de «proxy».
Cómo funciona un proxy SOCKS5
SOCKS5 trabaja a un nivel más bajo: no sabe qué es una página web, reenvía conexiones TCP hacia cualquier dirección y puerto. Por eso sirve también para tráfico no web, como clientes de correo, apps o protocolos propios. El protocolo prevé también el tráfico UDP, pero el soporte depende del proveedor y del programa.
Un detalle importante es el DNS. Con SOCKS5 el nombre del sitio puede resolverlo el proxy en lugar de tu ordenador, así que también las consultas DNS salen por la red móvil y no por tu conexión. En cURL y Python se consigue con el esquema socks5h:// (la «h» viene de hostname).
Comparativa
| HTTP | SOCKS5 | |
|---|---|---|
| Nivel | Aplicación (web) | Sesión (cualquier TCP) |
| Sitios HTTPS | Sí, con túnel CONNECT | Sí |
| Tráfico no web | No | Sí |
| Resolución DNS | La hace el proxy en las peticiones con túnel | La hace el proxy con socks5h; si no, local |
| Compatibilidad | Máxima | Muy alta |
| Autenticación | Usuario y contraseña | Usuario y contraseña |
Seguridad: qué ve el proxy
Con un sitio HTTPS, el contenido de las páginas, las contraseñas y las cookies van cifrados desde tu programa hasta el sitio, tanto con HTTP como con SOCKS5. El proxy solo ve a qué sitio te conectas y cuánto tráfico pasa.
Con un sitio en HTTP sin cifrar (cada vez más raro), un proxy HTTP podría leer y modificar el contenido. Esto vale para cualquier red por la que pases, no solo para los proxies: prefiere siempre HTTPS.
Cuál elegir
- Navegadores antidetect (AdsPower, Multilogin, GoLogin, Dolphin{anty}): SOCKS5, para que también el DNS pase por el proxy. Ambos funcionan siempre que el tipo coincida con el configurado en el proxy.
- Navegador normal: HTTP es lo más sencillo de configurar; Firefox también gestiona bien SOCKS5 con DNS remoto (consulta la guía de Firefox).
- Scripts (cURL, Python, Node.js): cualquiera de los dos; con SOCKS5 usa
socks5h://. - Apps y tráfico no web: SOCKS5.
Ejemplos prácticos
# HTTP
curl -x http://USUARIO:CONTRASEÑA@HOST:PUERTO https://api.ipify.org
# SOCKS5 con DNS desde el proxy
curl -x socks5h://USUARIO:CONTRASEÑA@HOST:PUERTO https://api.ipify.orgimport requests # para SOCKS5: pip install "requests[socks]"
proxy = "socks5h://USUARIO:CONTRASEÑA@HOST:PUERTO"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=30)
print(r.text)Tienes ejemplos más completos en las guías de cURL, Python y Node.js.
Preguntas frecuentes
¿SOCKS5 es más rápido que HTTP?
La diferencia es mínima: con los sitios HTTPS ambos reenvían un túnel cifrado. La velocidad depende sobre todo de la red del proxy.
¿Qué es SOCKS4?
Una versión antigua del protocolo, sin autenticación con contraseña y sin IPv6. Hoy se usa SOCKS5.
¿Por qué la conexión falla con «proxy error»?
Lo más habitual es que el tipo elegido en el programa no coincida con el del proxy, o que haya un error en el usuario o la contraseña. Comprueba los datos en la sección Conexión del proxy.
Prueba un proxy móvil 5G
Smartphone dedicado, tráfico ilimitado, IP reales de operadores. Activo en pocos minutos.
Ver planes