# curl avec proxies HTTP et SOCKS5 : exemples à copier-coller

> Exemples curl proxy : -x et -U, SOCKS5 avec --socks5-hostname, sessions persistantes, statut CONNECT et chronométrage avec -w, curl.exe sur Windows.

- URL: https://crawlrelay.com/fr/docs/curl/
- Dernière mise à jour: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

curl est le moyen le plus rapide de tester identifiants, ciblage et temps avant de toucher à votre scraper. Chaque commande ci-dessous s’exécute telle quelle dès que vous remplacez USERNAME et PASSWORD.

**Réponse rapide — Comment utiliser un proxy avec curl ?**

Utilisez `curl -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://api.ipify.org` pour le proxy HTTP ou `--socks5-hostname gw.crawlrelay.com:7778` avec `-U USERNAME:PASSWORD` pour SOCKS5. **CrawlRelay** proxy résidentiel prend le pays et une session persistante dans le nom d’utilisateur, comme `USERNAME-country-de-session-t1-ttl-10`. À partir de 0,50 $US/GB. Payez en crypto, sans KYC.

## Flags curl nécessaires

| Attribut | Valeur |
| --- | --- |
| `-x` / `--proxy` | URL proxy : `http://host:port`, identifiants optionnels dans celle-ci |
| `-U` / `--proxy-user` | Identifiants proxy comme `USERNAME:PASSWORD`, hors de l’URL |
| `--socks5-hostname` | Proxy SOCKS5 avec résolution DNS à la sortie |
| `-v` | Affiche l'échange CONNECT et la ligne de statut du proxy |
| `-w` | Affiche les temps, la taille et `%{http_connect}`, le statut CONNECT du proxy |
| `--max-time`, `--connect-timeout` | Limites totales et de connexion en secondes |

## Quelles sont les commandes de base pour un proxy ?

Chacune affiche l'IP de sortie vue par le site web.

*Proxy HTTP, rotation, puis ciblé et 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
```

## Comment déboguer une connexion proxy avec curl ?

Lancez avec `-v` et lisez les lignes autour de `CONNECT`. Un tunnel fonctionnel affiche `HTTP/1.1 200 Connection established`, puis la négociation TLS avec le site. Tout autre statut sur cette ligne vient du proxy : 407 signifie authentification, 502 ou 504 concernent la sortie ou la cible. Le format `-w` ci-dessous affiche la même info sur une ligne, pratique en boucles et CI.

*Rapport verbeux CONNECT et timing sur une ligne*

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

## Comment vérifier que la rotation et les sessions fonctionnent ?

Demandez l'IP plusieurs fois. Sans ID de session, chaque exécution est une nouvelle connexion et montre généralement une IP différente. Avec un ID de session, l'IP doit rester identique jusqu'à expiration du TTL, mais peut changer avant.

*Rotation vs sticky dans une boucle 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
```

## Comment utiliser curl avec un proxy sous Windows ?

Appelez `curl.exe`, pas `curl`. Sous Windows PowerShell 5.1, `curl` est un alias de `Invoke-WebRequest`, qui ne comprend pas `-x` ou `-U`. Windows 10 et 11 incluent le vrai curl sous `curl.exe`. Dans PowerShell, quotez les arguments avec caractères spéciaux et écrivez un `$` littéral dans un mot de passe entre guillemets simples.

*PowerShell*

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

## Comment configurer le proxy une fois pour toutes les commandes ?

curl lit les variables d'environnement `https_proxy` et `http_proxy`, ainsi que beaucoup d'autres outils. Configurez-les pour une session shell et utilisez `NO_PROXY` pour les hôtes qui ne doivent pas passer par le proxy, comme votre propre API. Évitez de mettre le mot de passe dans une variable exportée à tous les processus enfants sur une machine partagée.

*Variables d'environnement (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 et proxies : questions

### Quelle est la différence entre --socks5 et --socks5-hostname ?

Avec `--socks5`, curl résout le nom d'hôte sur votre machine et envoie l'adresse IP au proxy. Avec `--socks5-hostname`, il envoie le nom d'hôte et la résolution se fait côté proxy. Utilisez `--socks5-hostname` pour scraper afin que les réponses DNS correspondent au pays de sortie, et que votre résolveur local ne voie pas les domaines consultés.

### Pourquoi curl affiche 'CONNECT tunnel failed, response 407' ?

Le proxy a rejeté les identifiants ou n'en a reçu aucun. Vérifiez nom d'utilisateur et mot de passe, encodez correctement les caractères spéciaux s'ils sont dans l'URL `-x`, ou passez-les avec `-U` à la place. La page [407](https://crawlrelay.com/fr/docs/errors/407-proxy-authentication-required/) liste les autres causes.

### Comment voir combien d'octets une page coûte via le proxy ?

Ajoutez `--compressed -o /dev/null -w '%{size_download}\n'`. `--compressed` fait que curl demande gzip ou brotli comme votre scraper, et `%{size_download}` compte les octets compressés traversant le réseau. Sans cela, le serveur envoie la page non compressée et le chiffre peut être plusieurs fois plus élevé. Testez sur plusieurs pages réelles pour estimer votre trafic par 1 000 pages.

### curl peut-il utiliser HTTP/2 ou HTTP/3 via le proxy ?

HTTP/2 fonctionne dans le tunnel CONNECT si le site le supporte, car le tunnel transporte TLS de bout en bout. HTTP/3 utilise UDP, que le tunnel CONNECT via un proxy HTTP ne transporte pas, préférez HTTP/2 ou HTTP/1.1 via la passerelle.

**Testez vos cibles en ligne de commande** 1,50 $US pour 1 GB, assez pour des milliers de tests curl. [Choisir 1 GB](https://crawlrelay.com/app/checkout/?plan=res-1&product=residential&lang=fr) · [Référence des erreurs](https://crawlrelay.com/fr/docs/errors/)

---

CrawlRelay: CrawlRelay est un service de proxy résidentiel rotatif et proxy mobile 4G/5G pour développeurs, adapté aux scrapers et pipelines de données IA : trafic prépayé sans expiration à partir de 0,50 $US/GB, paiement en crypto, sans téléchargement d’ID. Sans KYC — pas d’ID, pas de selfie, pas de documents. Payer en crypto.
