# curl con proxy HTTP e SOCKS5: esempi copia-incolla

> Esempi curl proxy: -x e -U, SOCKS5 con --socks5-hostname, sessioni sticky, stato CONNECT e timing con -w, curl.exe su Windows.

- URL: https://crawlrelay.com/it/docs/curl/
- Ultimo aggiornamento: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

curl è il modo più rapido per testare credenziali, targeting e tempi prima di usare il tuo scraper. Ogni comando qui sotto funziona così com'è dopo aver sostituito USERNAME e PASSWORD.

**Risposta rapida — Come uso un proxy con curl?**

Usa `curl -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://api.ipify.org` per il proxy HTTP, o `--socks5-hostname gw.crawlrelay.com:7778` con `-U USERNAME:PASSWORD` per SOCKS5. **CrawlRelay** proxy residenziali prendono il paese e una sessione sticky nell'username, ad esempio `USERNAME-country-de-session-t1-ttl-10`. A partire da 0,50 USD/GB. Pagati in crypto, senza KYC.

## Flag curl necessari

| Attributo | Valore |
| --- | --- |
| `-x` / `--proxy` | URL del proxy: `http://host:port`, credenziali opzionali all'interno |
| `-U` / `--proxy-user` | Credenziali proxy come `USERNAME:PASSWORD`, tenute fuori dall'URL |
| `--socks5-hostname` | Proxy SOCKS5 con DNS risolto all'uscita |
| `-v` | Mostra lo scambio CONNECT e la linea di stato del proxy |
| `-w` | Stampa i tempi, la dimensione e `%{http_connect}`, lo stato CONNECT del proxy |
| `--max-time`, `--connect-timeout` | Limiti totali e di connessione, in secondi |

## Quali sono i comandi base per i proxy?

Ognuno di questi stampa l'IP di uscita che il sito web vede.

*Proxy HTTP, rotante, poi mirato e sticky*

```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
```

## Come faccio a fare il debug di una connessione proxy con curl?

Esegui con `-v` e leggi le righe intorno a `CONNECT`. Un tunnel funzionante mostra `HTTP/1.1 200 Connection established`, poi il handshake TLS con il sito web. Qualsiasi altro stato su quella riga arriva dal proxy: 407 significa credenziali, 502 o 504 indicano problemi all'uscita o al target. Il formato `-w` qui sotto stampa le stesse informazioni in una riga, comodo per cicli e controlli CI.

*CONNECT verboso e rapporto tempi in una riga*

```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/
```

## Come faccio a verificare che la rotazione e le sessioni funzionino?

Richiedi l'IP più volte. Senza un ID sessione, ogni esecuzione è una nuova connessione e solitamente mostra un IP diverso. Con un ID sessione, l'IP dovrebbe rimanere lo stesso fino alla scadenza del TTL, anche se può cambiare prima.

*Rotazione vs sticky in un ciclo 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
```

## Come uso curl con un proxy su Windows?

Chiama `curl.exe`, non `curl`. In Windows PowerShell 5.1, `curl` è un alias di `Invoke-WebRequest`, che non supporta `-x` o `-U`. Windows 10 e 11 includono il vero curl come `curl.exe`. In PowerShell, metti tra virgolette gli argomenti con caratteri speciali, e scrivi letteralmente `$` in una password racchiusa tra apici singoli.

*PowerShell*

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

## Come imposto il proxy una volta per ogni comando?

curl legge le variabili d'ambiente `https_proxy` e `http_proxy`, e molti altri strumenti le leggono. Impostale per la sessione shell, e usa `NO_PROXY` per gli host che non devono passare dal proxy, come la tua API. Evita di mettere la password in variabili esportate a ogni processo figlio su macchine condivise.

*Variabili d'ambiente (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 e proxy: domande

### Qual è la differenza tra --socks5 e --socks5-hostname?

Con `--socks5`, curl risolve il nome host localmente e manda l'IP al proxy. Con `--socks5-hostname`, manda il nome host e il proxy risolve da solo. Usa `--socks5-hostname` per scraping in modo che la risposta DNS corrisponda al paese di uscita, e così il tuo resolver locale non vede i domini che richiedi.

### Perché curl dice 'CONNECT tunnel failed, response 407'?

Il proxy ha respinto le credenziali o non le ha ricevute. Controlla username e password, e codifica URL i caratteri speciali se sono nell'URL `-x`, oppure passali con `-U`. La pagina [407](https://crawlrelay.com/it/docs/errors/407-proxy-authentication-required/) elenca le altre cause.

### Come vedo quanti byte costa una pagina passando dal proxy?

Aggiungi `--compressed -o /dev/null -w '%{size_download}\n'`. `--compressed` fa sì che curl chieda gzip o brotli come fa il tuo scraper, e `%{size_download}` conta i byte compressi transitati. Senza questo, il server invia la pagina non compressa e la cifra può essere molto più alta. Provalo su alcune pagine reali per stimare il traffico per 1.000 pagine.

### curl può usare HTTP/2 o HTTP/3 attraverso il proxy?

HTTP/2 funziona dentro il tunnel CONNECT quando il sito lo supporta, perché il tunnel porta TLS end to end. HTTP/3 usa UDP, che un tunnel CONNECT via proxy HTTP non trasporta, quindi usa HTTP/2 o HTTP/1.1 tramite il gateway.

**Testa i tuoi target da linea di comando** 1,50 USD per 1 GB, sufficiente per migliaia di test con curl. [Scegli 1 GB](https://crawlrelay.com/app/checkout/?plan=res-1&product=residential&lang=it) · [Riferimento errori](https://crawlrelay.com/it/docs/errors/)

---

CrawlRelay: CrawlRelay è un servizio di proxy residenziali rotanti e proxy mobili 4G/5G primo per sviluppatori: traffico pay-as-you-go senza scadenza da 0,50 USD/GB, pagato in crypto, senza caricamento documenti. Senza KYC — niente documento, selfie o altri documenti. Paga in crypto.
