Respuesta rápida
¿Qué significa SOCKS5 proxy errors con un proxy?
Errores SOCKS5 hay tres tipos: tu cliente no soporta SOCKS, el servidor rechazó usuario y contraseña, o el servidor no pudo alcanzar el destino y devolvió un código de respuesta. Con CrawlRelay, instala primero soporte SOCKS (para Python requests: requests[socks]), usa el puerto SOCKS5, y prefiere socks5h:// para que el DNS se resuelva en la salida, no en tu máquina.
SOCKS5 proxy errors en pocas palabras
| Error | SOCKS5 proxy errors |
|---|---|
| Tipo | Error de protocolo SOCKS5 o del cliente |
| Enviado por | El servidor SOCKS5 (códigos de respuesta) o tu librería cliente (falta de soporte) |
| Definido en | SOCKS5: RFC 1928; username/password authentication: RFC 1929 |
| ¿Reintentar? | Depende del código de respuesta |
| Primera comprobación | Confirma que el cliente soporta SOCKS5 con autenticación, luego lee el código de respuesta |
¿Qué significa SOCKS5 proxy errors?
SOCKS5, definido en RFC 1928, retransmite conexiones TCP sin leer HTTP. La autenticación por usuario y contraseña es un intercambio separado, definido en RFC 1929. Tras autenticarse, el cliente pide conexión a host y puerto, y el servidor responde con un código de un byte.
El código 0x00 indica éxito. Los códigos 0x01 a 0x08 describen fallos, desde error general de servidor a tipo de dirección no soportado. Los clientes traducen estos códigos a mensajes propios.
¿Cómo se ve a SOCKS5 error en Python, curl, Node.js y navegadores?
El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:
- Python requests sin PySocks:
InvalidSchema: Missing dependencies for SOCKS support. - curl, credenciales rechazadas:
curl: (97) User was rejected by the SOCKS5 server - Respuesta 0x01: 'error general del servidor SOCKS'
- Respuesta 0x04 / 0x05: 'Host inalcanzable' / 'Conexión rechazada' por el destino
- Respuesta 0x08: 'Tipo de dirección no soportado'
¿Qué causa a SOCKS5 error?
Lo más probable al principio:
- Falta soporte SOCKS en la librería cliente.
- Credenciales erróneas o no codificadas en URL.
- Usar puerto HTTP para SOCKS, o puerto SOCKS para HTTP.
- Destino que rechazó o no fue alcanzable desde la salida.
- DNS local con
socks5://: el cliente resuelve el nombre, lo que puede fallar o devolver dirección regional incorrecta.
¿Cómo diagnostico a SOCKS5 error paso a paso?
- Verifica soporte SOCKS: en Python,
pip show pysocks; en Node.js, paquete agente SOCKS. - Ejecuta la prueba curl abajo contra el puerto SOCKS5 con
--socks5-hostname. - Lee el código o mensaje de respuesta.
- Compara
socks5://ysocks5h://para el mismo destino.
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL
# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL¿Cómo soluciono a SOCKS5 error?
- Instala soporte:
pip install "requests[socks]"; en Node.js usa un agente proxy SOCKS. - Usa el puerto SOCKS5 para URLs
socks5h://y el puerto HTTP para URLshttp://. - Prefiere
socks5h://para que la salida resuelva el DNS, que coincide con lo que ven los visitantes locales. - Para respuestas 0x04 o 0x05, prueba el destino sin proxy; puede estar caído o rechazando.
- Para navegadores, usa el puerto HTTP: Chromium no soporta autenticación SOCKS5.
import requests
# socks5h:// sends the hostname to the proxy, so DNS resolves at the exit
proxy = "socks5h://USERNAME:[email protected]:7778"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.status_code, r.text)¿Debo reintentar después de a SOCKS5 error?
Reintenta solo los fallos en el destino, como host inalcanzable o conexión rechazada, y solo una vez en una salida nueva. Fallos de autenticación y falta de soporte cliente se repiten hasta corregir la configuración.
¿Cómo se aplica SOCKS5 proxy errors a CrawlRelay?
CrawlRelay ofrece SOCKS5 en su propio puerto, listado más abajo, con el mismo formato de usuario y contraseña que el puerto HTTP. El direccionamiento y las sesiones funcionan igual en ambos puertos.
Gateway: gw.crawlrelay.com, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: No se puede conectar al proxy · guía curl · guía Python.
SOCKS5 proxy errors: preguntas que hacen los desarrolladores
¿Cuál es la diferencia entre socks5:// y socks5h://?
Con socks5:// tu cliente resuelve el nombre de host a una dirección IP él mismo y envía la IP al proxy. Con socks5h:// envía el nombre de host, y el proxy lo resuelve. Usa socks5h:// para scraping: el DNS ocurre en la salida, así obtienes las mismas respuestas regionales que los visitantes locales.
¿Debo usar proxies SOCKS5 o HTTP para scraping?
Para páginas web, ambos funcionan, y los proxies HTTP son más sencillos: todas las librerías HTTP y navegadores los soportan con autenticación. Usa SOCKS5 para protocolos no HTTP o para herramientas que solo funcionan con SOCKS. Los navegadores basados en Chromium no pueden autenticarse en SOCKS5, así que usa el puerto HTTP allí.
¿Por qué curl dice 'El usuario fue rechazado por el servidor SOCKS5'?
El servidor SOCKS5 rechazó el intercambio de usuario y contraseña. Verifica las credenciales, codifica en URL los caracteres especiales y confirma que usas el puerto SOCKS5. El mismo usuario y contraseña debe funcionar en el puerto HTTP si la cuenta está activa.
Otros errores de proxy en esta referencia
Códigos de estado HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Errores de navegador y cliente
Errores de conexión y TLS
Proxies residenciales con documentación que cubre los casos de fallo
CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira.