# Ejemplos para copiar y pegar con curl y proxies HTTP y SOCKS5

> Ejemplos curl proxy: -x y -U, SOCKS5 con --socks5-hostname, sesiones pegajosas, estado CONNECT y temporización con -w, curl.exe en Windows.

- URL: https://crawlrelay.com/es/docs/curl/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

curl es la forma más rápida de probar credenciales, objetivos y tiempos antes de usar tu scraper. Cada comando abajo se ejecuta tal cual al reemplazar USERNAME y PASSWORD.

**Respuesta rápida — ¿Cómo uso un proxy con curl?**

Usa `curl -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://api.ipify.org` para proxy HTTP, o `--socks5-hostname gw.crawlrelay.com:7778` con `-U USERNAME:PASSWORD` para SOCKS5. **CrawlRelay** proxies residenciales toman país y sesión pegajosa en el usuario, como `USERNAME-country-de-session-t1-ttl-10`. Desde 0,50 US$/GB. Pago en cripto, sin KYC.

## Opciones curl que necesitas

| Atributo | Valor |
| --- | --- |
| `-x` / `--proxy` | URL del proxy: `http://host:port`, credenciales opcionales dentro |
| `-U` / `--proxy-user` | Credenciales del proxy como `USERNAME:PASSWORD`, fuera de la URL |
| `--socks5-hostname` | Proxy SOCKS5 con DNS resuelto en la salida |
| `-v` | Muestra el intercambio CONNECT y la línea de estado del proxy |
| `-w` | Imprime el tiempo, tamaño y `%{http_connect}`, el estado CONNECT del proxy |
| `--max-time`, `--connect-timeout` | Límites totales y de conexión, en segundos |

## ¿Cuáles son los comandos básicos para proxies?

Cada uno de estos muestra la IP de salida que ve la web.

*Proxy HTTP rotativo, luego dirigido y persistente*

```bash
# Rotating exit, any country
curl -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://api.ipify.org

# Country and city (city availability varies)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-city-chicago:PASSWORD https://api.ipify.org

# Sticky: run it twice, the IP stays the same for up to 10 minutes (it can change earlier)
curl -x http://gw.crawlrelay.com:7777 -U USERNAME-country-de-session-t1-ttl-10:PASSWORD https://api.ipify.org

# SOCKS5, DNS resolved at the exit
curl --socks5-hostname gw.crawlrelay.com:7778 -U USERNAME-country-gb:PASSWORD https://api.ipify.org
```

## ¿Cómo depuro una conexión proxy con curl?

Ejecuta con `-v` y lee las líneas alrededor de `CONNECT`. Un túnel funcionando muestra `HTTP/1.1 200 Connection established`, luego el apretón de manos TLS con la web. Cualquier otro estado en esa línea viene del proxy: 407 significa credenciales, 502 o 504 indica salida o destino. El formato `-w` abajo imprime la misma info en una línea, útil para loops y pruebas CI.

*CONNECT detallado y reporte de tiempo en una línea*

```bash
# Full exchange, including the proxy's answer to CONNECT
curl -v -x http://gw.crawlrelay.com:7777 -U USERNAME:PASSWORD https://example.com/ -o /dev/null

# One line: proxy CONNECT status, HTTP status, compressed bytes and timings
curl -s --compressed -o /dev/null -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD \
  -w 'connect=%{http_connect} http=%{http_code} bytes=%{size_download} tcp=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n' \
  https://example.com/
```

## ¿Cómo verifico que rotation y sesiones funcionan?

Pide la IP varias veces. Sin ID de sesión, cada ejecución es nueva conexión y suele mostrar IP diferente. Con ID, la IP se mantiene hasta que expire el TTL, aunque puede cambiar antes.

*Rotación vs persistente en un loop shell*

```bash
echo "rotating:"
for i in 1 2 3 4 5; do
  curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us:PASSWORD https://api.ipify.org; echo
done

echo "sticky:"
for i in 1 2 3 4 5; do
  curl -s -x http://gw.crawlrelay.com:7777 -U USERNAME-country-us-session-loop1-ttl-5:PASSWORD https://api.ipify.org; echo
done
```

## ¿Cómo uso curl con un proxy en Windows?

Usa `curl.exe`, no `curl`. En PowerShell 5.1, `curl` es alias de `Invoke-WebRequest`, que no entiende `-x` ni `-U`. Windows 10 y 11 traen el curl real como `curl.exe`. En PowerShell, pon entre comillas argumentos con caracteres especiales y escribe `$` literal en la contraseña con comillas simples.

*PowerShell*

```powershell
curl.exe -x http://gw.crawlrelay.com:7777 -U 'USERNAME-country-fr:PASSWORD' https://api.ipify.org
```

## ¿Cómo configuro el proxy una vez para todos los comandos?

curl lee las variables de entorno `https_proxy` y `http_proxy`, muchas otras herramientas también. Configúralas en la sesión shell y usa `NO_PROXY` para hosts que no deben pasar por el proxy, como tu API. Evita poner la contraseña en variable exportada a procesos hijos en máquinas compartidas.

*Variables de entorno (bash, zsh)*

```bash
export https_proxy="http://USERNAME-country-us:PASSWORD@gw.crawlrelay.com:7777"
export http_proxy="$https_proxy"
export NO_PROXY="localhost,127.0.0.1,.internal.example"

curl https://api.ipify.org   # now uses the proxy
unset https_proxy http_proxy # back to direct
```

## curl y proxies: preguntas

### ¿Cuál es la diferencia entre --socks5 y --socks5-hostname?

Con `--socks5`, curl resuelve el hostname en tu máquina y manda la IP al proxy. Con `--socks5-hostname`, manda el hostname y lo resuelve el proxy. Usa `--socks5-hostname` para scraping para que las respuestas DNS coincidan con el país de salida y tu resolver local no vea los dominios que buscas.

### ¿Por qué curl dice 'CONNECT tunnel failed, response 407'?

El proxy rechazó credenciales o no recibió ninguna. Revisa usuario y contraseña, y codifica caracteres especiales en URL si están en `-x` o pásalos con `-U`. La [página 407](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/) lista causas adicionales.

### ¿Cómo veo cuántos bytes consume una página vía proxy?

Agrega `--compressed -o /dev/null -w '%{size_download}\n'`. `--compressed` hace que curl pida gzip o brotli como tu scraper, y `%{size_download}` cuenta los bytes comprimidos transmitidos. Sin eso, el servidor envía la página sin comprimir y puede ser varias veces más grande. Prueba en varias páginas reales para estimar tráfico por 1,000 páginas.

### ¿Puede curl usar HTTP/2 o HTTP/3 a través del proxy?

HTTP/2 funciona dentro del túnel CONNECT si la web lo soporta, porque el túnel lleva TLS de extremo a extremo. HTTP/3 usa UDP, que un túnel CONNECT por proxy HTTP no transporta, usa HTTP/2 o HTTP/1.1 vía la puerta de enlace.

**Prueba tus objetivos desde la línea de comandos** 1,50 US$ para 1 GB, suficiente para miles de pruebas con curl. [Elige 1 GB](https://crawlrelay.com/app/checkout/?plan=res-1&product=residential&lang=es) · [Referencia de errores](https://crawlrelay.com/es/docs/errors/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
