Guía para desarrolladores · 2 min de lectura

Cómo usar un proxy con curl

curl tiene soporte de proxy incorporado: un par de banderas dirigen cualquier solicitud a través de un punto final HTTP o SOCKS5. Esta guía proporciona comandos para copiar y pegar contra tu proxy s4m, cubriendo autenticación, HTTPS, variables de entorno y cómo confirmar tu IP de salida.

Por qué enrutar curl a través de un proxy

Cuando curl se conecta directamente, el servidor de destino ve la dirección IP real de tu máquina en la conexión. Enrutar la solicitud a través de un proxy hacia adelante inserta un intermediario: el destino ahora ve la dirección del proxy, mientras que tu origen permanece fuera del intercambio. Ese es el objetivo principal de hacer proxy del tráfico automatizado: tú ocultas la IP de origen del host que realmente está haciendo la solicitud, lo que mantiene tu servidor principal fuera del radar de terceros.

Los proxies pagados de s4m son autenticados, puntos finales de datacenter SOCKS5 y HTTP, medidos por gigabyte. Ese modelo se adapta a scripting, pruebas de scraping, pipelines de CI y acceso a APIs desde una dirección estable. Si en cambio deseas que cada aplicación en una máquina esté tunelada con una tarifa mensual fija (no medida por GB), una conexión de VPN WireGuard suele ser la mejor herramienta: compara el tráfico de proxy medido con los planes de VPN fijos en precios. Para pruebas rápidas desechables, la lista pública de proxies gratuitos ofrece proxies de terceros que s4m valida continuamente, pero son estrictamente bajo tu propio riesgo y no son operados por nosotros.

curl entiende ambos protocolos de proxy de forma nativa, por lo que no se requiere ninguna herramienta adicional: solo cambias una sola bandera o un esquema de URL. Las diferencias prácticas:

AspectoProxy HTTP (puerto 3128)Proxy SOCKS5 (puerto 1080)
sintaxis de curl-x http://...:3128-x socks5h://...:1080
ManejaHTTP y HTTPS (a través de CONNECT)Cualquier conexión TCP
DNS remotoSí, el proxy resuelveSí, con socks5h:// o --socks5-hostname
AutenticaciónUSER:PASSUSER:PASS

Elige HTTP cuando solo necesites tráfico web; elige SOCKS5 cuando quieras DNS remoto o necesites tunelar un protocolo no HTTP.

Las banderas principales: -x, --socks5-hostname y auth

Cada ejemplo apunta a tu punto final de s4m en proxy.s4m.online — puerto 3128 para HTTP, 1080 para SOCKS5 — con USER:PASS representando tus credenciales reales.

bash
# 1) HTTP/HTTPS through the HTTP proxy (port 3128)
#    curl auto-issues CONNECT for https:// URLs, so TLS stays end-to-end
curl -x http://USER:PASS@proxy.s4m.online:3128 https://example.com

# 2) SOCKS5 with remote DNS (port 1080)
#    socks5h:// resolves the hostname AT the proxy (avoids local DNS leaks)
curl -x socks5h://USER:PASS@proxy.s4m.online:1080 https://example.com

# 3) Same SOCKS5 call using dedicated flags instead of a URL scheme
curl --socks5-hostname proxy.s4m.online:1080 \
     --proxy-user USER:PASS \
     https://example.com

# 4) Keep credentials out of the proxy URL with -U / --proxy-user
curl -x http://proxy.s4m.online:3128 -U USER:PASS https://example.com

# 5) --proxy is just the long form of -x
curl --proxy http://USER:PASS@proxy.s4m.online:3128 https://example.com

Configúralo una vez con variables de entorno de proxy

En lugar de añadir -x a cada comando, exporta el proxy una vez y deja que curl lo reutilice para toda la sesión de shell.

bash
# curl reads http_proxy in LOWERCASE only (a historical CGI safeguard);
# HTTPS_PROXY, ALL_PROXY and NO_PROXY work in either case.
export http_proxy="http://USER:PASS@proxy.s4m.online:3128"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"

# No -x needed now:
curl https://example.com

# Prefer a SOCKS5 endpoint for everything instead:
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"

# Let some hosts bypass the proxy entirely:
export NO_PROXY="localhost,127.0.0.1,.internal.example"

# Confirm the exit IP, then clean up:
curl https://api.ipify.org; echo
unset http_proxy HTTPS_PROXY ALL_PROXY NO_PROXY

Verifica la IP de salida y los problemas comunes

La forma más rápida de confirmar que el tráfico realmente sale a través del proxy es preguntar a un servicio de eco qué IP ve. Ejecuta la misma solicitud con y sin -x y compara los resultados.

Sin el proxy obtienes la dirección de tu propia máquina; con él, deberías obtener la dirección de salida s4m. Si las dos son idénticas, el proxy no se está aplicando: revisa el esquema, el puerto y si tus credenciales necesitan codificación de URL.

  • Credenciales con símbolos: codifica en porcentaje caracteres como @ o : dentro de USER o PASS, o evita el problema por completo pasándolos con --proxy-user.
  • Fugas de DNS de SOCKS: usa socks5h:// o --socks5-hostname para que las búsquedas se realicen en el proxy en lugar de en tu resolutor local.
  • Se requiere autenticación de proxy 407: el par USER:PASS falta o es incorrecto para ese punto final.
  • Realidad del centro de datos: los proxies s4m son IPs de centros de datos, por lo que un sitio que bloquea específicamente rangos de centros de datos aún los reconocerá como tales.
Share this page
FAQ

Preguntas, respondidas

¿Debería usar socks5:// o socks5h:// con curl?

Prefiere socks5h:// (o la bandera --socks5-hostname). Resuelve el nombre de host objetivo en el proxy, por lo que tu servidor DNS local nunca ve la búsqueda. El socks5:// simple resuelve localmente primero, lo que puede revelar el destino y usar tu propio resolutor.

¿HTTPS sigue funcionando a través de un proxy HTTP?

Sí, y no se necesitan banderas adicionales. Para una URL https://, curl envía un HTTP CONNECT al proxy y canaliza TLS de extremo a extremo, por lo que el proxy retransmite solo el flujo encriptado (ve el nombre de host a través de SNI, no el contenido de la página).

¿Los proxies de s4m son residenciales?

No. Los proxies de pago de s4m son puntos finales SOCKS5 y HTTP de centro de datos autenticados. Son estables y medidos por gigabyte, pero los rangos de centro de datos son identificables como IP de centro de datos, por lo que no pasarán como una conexión doméstica.

¿Por qué se está ignorando mi variable HTTP_PROXY?

curl lee la variable http_proxy solo en minúsculas, una salvaguarda de larga data contra la inyección de encabezados CGI. HTTPS_PROXY, ALL_PROXY y NO_PROXY se leen en cualquier caso. Usa http_proxy en minúsculas, o simplemente pasa -x en la línea de comandos.

¿Puedo salir siempre desde la misma IP?

Sí, con el complemento de IP personal dedicada. Es una dirección estática que es solo tuya, vinculable a tu proxy (o VPN) y opcionalmente desvinculada de tu identidad. Consulta la página de precios para más detalles.

Obtén credenciales de proxy en minutos

Crea una cuenta gratuita en s4m para obtener puntos finales SOCKS5 y HTTP autenticados con tráfico medido de pago por uso, además de una IP dedicada opcional. Se admite registro anónimo y pago en criptomonedas, y puedes probar las banderas anteriores.

Las personas encontraron esta página buscando

Frases de búsqueda reales que esta página responde — los enlaces abren la página que las cubre en profundidad.