Referencia de cURL · 1 min de lectura

curl con un proxy SOCKS5: la referencia completa

La referencia definitiva de curl y proxy: SOCKS5 vs SOCKS5h, las banderas -x y --socks5-hostname, variables de entorno, un .curlrc persistente y puntos finales de s4m autenticados. Listo para copiar y pegar.

SOCKS5 vs SOCKS5h, y por qué es importante

curl habla tanto de proxies HTTP como de SOCKS, y el esquema exacto que elijas decide dónde se resuelve DNS. Con socks5:// curl resuelve el nombre de host de destino en tu propia máquina y luego se conecta a través del proxy, lo que puede filtrar los dominios que visitas. Con socks5h:// (el h es para el nombre de host) el proxy resuelve DNS de forma remota, por lo que las búsquedas nunca salen de tu máquina. Para mayor privacidad, prefiere socks5h — la misma regla se aplica para la bandera --socks5-hostname, que es el equivalente en forma larga.

s4m te ofrece ambos protocolos en una cuenta: SOCKS5 en el puerto 1080 y HTTP en el puerto 3128, ambos autenticados con USER:PASS contra proxy.s4m.online. La bandera genérica -x / --proxy acepta una URL completa que incluye el esquema, por lo que una sola bandera cubre todos los casos. Para lo básico de enrutar curl a través de un proxy, consulta la guía de proxy de curl; esta página es la referencia más profunda para SOCKS5, variables de entorno y configuración persistente. La información sobre los protocolos se encuentra en qué es SOCKS5.

Cada invocación de proxy, un lugar

SOCKS5, SOCKS5h, HTTP, autenticación, variables de entorno y un archivo .curlrc. Reemplaza USER:PASS con tus credenciales.

bash
# --- SOCKS5 with REMOTE DNS (recommended) ---
curl -x socks5h://USER:PASS@proxy.s4m.online:1080 https://api.ipify.org
# equivalent long form:
curl --socks5-hostname proxy.s4m.online:1080 -U USER:PASS https://api.ipify.org

# --- SOCKS5 with LOCAL DNS (leaks hostnames) ---
curl -x socks5://USER:PASS@proxy.s4m.online:1080 https://api.ipify.org

# --- HTTP / HTTPS proxy (port 3128) ---
curl -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org

# --- Whole-session env vars (any http_proxy-aware tool honors these) ---
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"
export NO_PROXY="localhost,127.0.0.1,.internal"
curl https://api.ipify.org        # now proxied with no -x flag

# --- Persistent config: ~/.curlrc (applied to every curl run) ---
cat > ~/.curlrc <<'RC'
proxy = socks5h://proxy.s4m.online:1080
proxy-user = USER:PASS
connect-timeout = 10
RC
curl https://api.ipify.org        # reads ~/.curlrc automatically

# --- Ignore ~/.curlrc for one call ---
curl -q --noproxy '*' https://api.ipify.org

Configura un proxy persistente para curl

Así que cada comando curl se proxía sin repetir banderas.

Elige un esquema

Elige socks5h:// en el puerto 1080 para DNS remoto y cualquier protocolo, o http:// en el puerto 3128 para tráfico web simple. socks5h es el predeterminado seguro para la privacidad.

Crea ~/.curlrc

Agrega proxy = socks5h://proxy.s4m.online:1080 y proxy-user = USER:PASS a ~/.curlrc. curl lee este archivo en cada ejecución a menos que pases -q.

Establecer variables de entorno para otras herramientas

Exporta ALL_PROXY para que cualquier CLI que reconozca http_proxy (wget, git, gestores de paquetes) comparta la misma salida, y establece NO_PROXY para hosts que deben eludir el proxy.

Verifica y añade excepciones

Ejecuta curl https://api.ipify.org para confirmar la IP de salida, luego usa --noproxy o NO_PROXY para excluir hosts internos que nunca deseas que sean proxied.

Opciones de autenticación, precedencia y NTLM

Puedes proporcionar credenciales de dos maneras: en línea en la URL (socks5h://USER:PASS@host) o por separado con -U / --proxy-user. Si tu contraseña contiene caracteres como @ o :, prefiere -U o codifícalos en URL para que curl analice la URL correctamente. Las banderas de línea de comandos siempre anulan las variables de entorno, que a su vez anulan ~/.curlrc — así que un -x único supera tu configuración persistente.

Para proxies corporativos que utilizan autenticación NTLM de Windows, curl admite --proxy-ntlm junto con -U; s4m en sí utiliza autenticación estándar USER:PASS (Básica), por lo que no necesitarás NTLM con nuestros puntos finales. Si una solicitud devuelve 407 Proxy Authentication Required, tus credenciales están faltando o son incorrectas — consulta la guía de solución 407. Las mismas variables de entorno alimentan wget y otras herramientas, y puedes validar cualquier punto final con las herramientas o probar proxies abiertos de la lista gratuita.

FAQ

Preguntas, respondidas

¿Cuál es la diferencia entre socks5 y socks5h en curl?

socks5:// resuelve DNS en tu máquina local antes de conectarse; socks5h:// le pide al proxy que lo resuelva de forma remota. Usa socks5h para evitar filtrar los nombres de host que solicitas. La bandera --socks5-hostname es la misma que socks5h.

¿Cómo hago que curl use un proxy para cada comando?

Ponga proxy = socks5h://proxy.s4m.online:1080 y proxy-user = USER:PASS en ~/.curlrc, o exporte ALL_PROXY. curl luego proxyará cada solicitud automáticamente; pase -q o --noproxy para omitirlo en una llamada.

¿Necesita s4m autenticación de proxy NTLM?

No. s4m utiliza autenticación estándar USER:PASS (Básica) en los puertos 1080 y 3128. --proxy-ntlm de curl es solo para proxies corporativos que requieren Windows NTLM.

¿Por qué recibo 407 Proxy Authentication Required?

Tus credenciales están ausentes, mal formadas o son incorrectas. Proporciónalas con -U USER:PASS o en línea en la URL del proxy, codificando cualquier carácter especial en la contraseña. Consulta nuestra guía 407 para una lista de verificación completa.

Un punto final, cada truco de curl

Proxies SOCKS5 (1080) y HTTP (3128) autenticados en proxy.s4m.online, listos para -x, --socks5-hostname y ~/.curlrc. Medido, paga a medida que avanzas, IP dedicada opcional.

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.