Ce site Web utilise des cookies
Nous utilisons des cookies sur ce site pour améliorer votre expérience, analyser le trafic et personnaliser le contenu. Vous pouvez modifier vos préférences à l'aide de l'option « Réinitialiser les cookies » en bas de page.
Paramètres des cookies
curl-with-proxies

Comment utiliser cURL avec des proxies

Jason Grad
Co-fondateur
August 19, 2025
Table of Contents

Prêt à tester les performances d'un proxy premium ?

Entrez en contact avec les meilleurs fournisseurs de web scraping

Parcourez notre place de marché et trouvez le partenaire idéal pour vos projets de données

Comment utiliser cURL avec des proxies

Jason Grad
Co-fondateur
August 19, 2025

TL ; SEC

  • Proxy HTTP de base: curl -x http://proxy:port https://example.com
  • Proxy SOCKS5: curl --socks5 proxy : port https://example.com
  • Authentification par proxy: curl -x http://proxy:port -U nom d'utilisateur : mot de passe https://example.com
  • Variables d'environnement: Ensemble export http_proxy= http://proxy:port pour une utilisation persistante
  • Contourner le proxy: Utilisation --noproxy domaine.com pour des domaines spécifiques
  • Connexions sécurisées: Privilégiez toujours les proxys HTTPS pour les données sensibles
  • Résolution des problèmes: Utilisation -v drapeau pour une sortie verbeuse et -k pour ignorer la vérification SSL (tests uniquement)

La maîtrise de cURL à l'aide de proxys est essentielle pour les développeurs, les analystes de données et les administrateurs système. Qu'il s'agisse de faire du web scraping, de tester des API depuis différents emplacements ou de préserver l'anonymat, la combinaison de cURL avec des serveurs proxy fournit de puissantes fonctionnalités pour la collecte de données et les tests de réseau.

Ce guide complet couvre tout, des configurations de proxy de base aux implémentations avancées au niveau de l'entreprise, avec des exemples concrets et des solutions de dépannage.

Comprendre cURL et les proxies

Qu'est-ce que cURL ?

cURL (Client URL) est un puissant outil de ligne de commande et une bibliothèque permettant de transférer des données à l'aide de divers protocoles réseau, notamment HTTP, HTTPS, FTP, FTPS et bien d'autres. Intégré à plus de 20 milliards d'applications logicielles dans le monde entier, cURL alimente tout, des smartphones aux voitures, en passant par les équipements médicaux et les consoles de jeux.

Principales fonctionnalités de cURL :

  • Envoyer des requêtes HTTP (GET, POST, PUT, DELETE, etc.)
  • Gérer l'authentification et les cookies
  • Prise en charge du chiffrement SSL/TLS
  • Chargements et téléchargements de fichiers
  • En-têtes et agents utilisateurs personnalisés
  • Support de proxy pour tous les principaux types de proxy

Que sont les proxies ?

Un serveur proxy fait office d'intermédiaire entre votre appareil et Internet, en acheminant vos demandes via une adresse IP différente. Proxies résidentiels sont particulièrement efficaces pour les tâches de web scraping et de collecte de données.

Pourquoi utiliser cURL avec des proxies ?

  1. Contournez les restrictions géographiques: Accédez au contenu de différentes régions
  2. Évitez le blocage des adresses IP: effectuez une rotation entre plusieurs adresses IP
  3. Confidentialité améliorée: masquez votre localisation et votre identité réelles
  4. Automatisation évolutive: Gérez la collecte de gros volumes de données
  5. Flexibilité des tests: Simulez des utilisateurs depuis différents endroits

Configuration de cURL

Installation de Windows

  1. Téléchargez cURL depuis site officiel
  2. Extrayez les fichiers dans votre répertoire préféré (par exemple, C:\curl)
  3. Ajouter à PATH via Propriétés du système → Variables d'environnement
  4. Vérifiez : curl --version

Installation de macOS

macOS inclut cURL par défaut. Pour la dernière version :

# Check current version
curl --version

# Install latest via Homebrew
brew install curl

Installation de Linux

La plupart des distributions incluent cURL :

# Ubuntu/Debian
sudo apt update && sudo apt install curl

# CentOS/RHEL
sudo yum install curl

# Verify installation
curl --version

Configuration de base du proxy cURL

Configuration du proxy HTTP

La configuration de proxy la plus courante utilise -x ou --mandataire drapeau :

# Basic HTTP proxy
curl -x http://proxy.example.com:8080 https://httpbin.org/ip

# Alternative syntax
curl --proxy http://proxy.example.com:8080 https://httpbin.org/ip

Configuration du proxy HTTPS

Pour des connexions proxy sécurisées :

# HTTPS proxy for encrypted proxy communication
curl -x https://secure-proxy.example.com:8443 https://httpbin.org/ip

Tester la configuration de votre proxy

Pour vérifier que votre proxy fonctionne :

# Check your IP without proxy
curl https://httpbin.org/ip

# Check your IP with proxy
curl -x http://proxy.example.com:8080 https://httpbin.org/ip

# The response should show different IP addresses

Authentification par proxy cURL

Authentification par identifiant et mot de passe

De nombreux serveurs proxy nécessitent des informations d'identification :

# Basic authentication
curl -x http://proxy.example.com:8080 -U username:password https://httpbin.org/ip

# Alternative format (embed credentials in URL)
curl -x http://username:password@proxy.example.com:8080 https://httpbin.org/ip

Méthodes d'authentification avancées

# Digest authentication
curl -x http://proxy.example.com:8080 -U username:password --proxy-digest https://httpbin.org/ip

# NTLM authentication (Windows environments)
curl -x http://proxy.example.com:8080 -U domain\\username:password --proxy-ntlm https://httpbin.org/ip

# Bearer token authentication
curl -x http://proxy.example.com:8080 --proxy-header "Authorization: Bearer your-token" https://httpbin.org/ip

Mise en œuvre du proxy SOCK

Proxy SOCKS5 (recommandé)

SOCKS5 offre le meilleur équilibre entre fonctionnalités et sécurité :

# Basic SOCKS5
curl --socks5 proxy.example.com:1080 https://httpbin.org/ip

# SOCKS5 with authentication
curl --socks5 proxy.example.com:1080 --socks5-basic --user username:password https://httpbin.org/ip

SOCKS4 et SOCKS4a

Pour les systèmes existants :

# SOCKS4
curl --socks4 proxy.example.com:1080 https://httpbin.org/ip

# SOCKS4a (supports domain name resolution through proxy)
curl --socks4a proxy.example.com:1080 https://httpbin.org/ip

Variables d'environnement et configuration

Définition des variables d'environnement proxy

Configurez les paramètres de proxy à l'échelle du système :

# HTTP proxy
export http_proxy=http://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080

# HTTPS proxy
export https_proxy=https://secure-proxy.example.com:8443
export HTTPS_PROXY=https://secure-proxy.example.com:8443

# SOCKS proxy
export all_proxy=socks5://proxy.example.com:1080

# No proxy for specific domains
export no_proxy=localhost,127.0.0.1,.example.com

Rendre les paramètres persistants

Ajoutez à votre profil shell (.bashrc, .shrc, etc.) :

echo 'export http_proxy=http://proxy.example.com:8080' >> ~/.bashrc
echo 'export https_proxy=http://proxy.example.com:8080' >> ~/.bashrc
source ~/.bashrc

Utilisation des fichiers de configuration

Créez des fichiers de configuration cURL réutilisables :

# ~/.curlrc for global settings
proxy = http://proxy.example.com:8080
user-agent = "DataCollector/1.0"
retry = 3
connect-timeout = 10

# Project-specific config
# Use with: curl -K project.curlrc https://api.example.com

Techniques avancées de proxy cURL

Contournement du proxy pour des domaines spécifiques

# Bypass proxy for specific domain
curl -x http://proxy:8080 --noproxy example.com https://example.com

# Bypass proxy for multiple domains
curl -x http://proxy:8080 --noproxy "example.com,internal.local" https://internal.local

# Bypass proxy for all requests
curl --noproxy "*" https://example.com

Gestion des certificats SSL

Lorsque vous travaillez avec des proxys HTTPS :

# Skip certificate verification (testing only!)
curl -k -x https://proxy.example.com:8443 https://httpbin.org/ip

# Specify custom CA certificate
curl --cacert /path/to/ca-cert.pem -x https://proxy.example.com:8443 https://httpbin.org/ip

⚠️ Note de sécurité: À utiliser uniquement -k pour les tests. En production, vérifiez toujours les certificats SSL.

Scripts de rotation du proxy

Implémentez la rotation automatique du proxy :

#!/bin/bash
# proxy-rotation.sh

proxies=(
    "http://proxy1.example.com:8080"
    "http://proxy2.example.com:8080"
    "http://proxy3.example.com:8080"
)

# Function to test proxy
test_proxy() {
    local proxy=$1
    if curl -x "$proxy" --max-time 10 -s https://httpbin.org/ip >/dev/null 2>&1; then
        echo "✓ $proxy - Working"
        return 0
    else
        echo "✗ $proxy - Failed"
        return 1
    fi
}

# Test and use working proxies
working_proxies=()
for proxy in "${proxies[@]}"; do
    if test_proxy "$proxy"; then
        working_proxies+=("$proxy")
    fi
done

# Make requests with working proxies
for proxy in "${working_proxies[@]}"; do
    curl -x "$proxy" https://api.example.com/data
done

Cas d'utilisation concrets

Web Scraping avec cURL et proxies

Le web scraping nécessite souvent une rotation du proxy pour éviter d'être détecté. Contrairement aux outils d'automatisation des navigateurs tels que ceux présentés dans notre comparaison entre Puppeteer et Selenium, cURL permet une extraction de données légère et efficace :

#!/bin/bash
# web-scraping.sh

urls=(
    "https://example.com/page1"
    "https://example.com/page2"
    "https://example.com/page3"
)

proxies=(
    "http://residential1.proxy.com:8080"
    "http://residential2.proxy.com:8080"
    "http://residential3.proxy.com:8080"
)

# Scrape with rotation
for i in "${!urls[@]}"; do
    proxy=${proxies[$((i % ${#proxies[@]}))]}
    url=${urls[i]}
    
    echo "Scraping $url via $proxy"
    curl -x "$proxy" \
         -H "User-Agent: Mozilla/5.0 (compatible; DataBot/1.0)" \
         -H "Accept: text/html,application/xhtml+xml" \
         -s "$url" > "page_$((i+1)).html"
    
    # Respectful delay
    sleep $((RANDOM % 5 + 2))
done

Pour des scénarios de web scraping plus avancés, proxys résidentiels offrent souvent de meilleurs taux de réussite face aux mesures anti-bots par rapport aux proxys des centres de données.

Tests d'API à partir de plusieurs sites

Testez les performances globales de votre API :

#!/bin/bash
# api-geo-test.sh

declare -A regional_proxies=(
    ["us-east"]="http://us-east.proxy.com:8080"
    ["us-west"]="http://us-west.proxy.com:8080"
    ["eu-west"]="http://eu-west.proxy.com:8080"
    ["asia"]="http://asia.proxy.com:8080"
)

# Test API endpoint from each region
for region in "${!regional_proxies[@]}"; do
    proxy=${regional_proxies[$region]}
    echo "Testing from $region via $proxy"
    
    response_time=$(curl -x "$proxy" \
                         -w "%{time_total}" \
                         -o /dev/null \
                         -s \
                         https://api.yourservice.com/health)
    
    echo "$region: ${response_time}s response time"
done

Surveillance et contrôles de disponibilité

Surveillez la disponibilité du site Web à partir de différents emplacements :

#!/bin/bash
# uptime-monitor.sh

target_url="https://yourwebsite.com"
log_file="uptime_$(date +%Y%m%d).log"

monitor_proxies=(
    "http://monitor1.proxy.com:8080"
    "http://monitor2.proxy.com:8080"
    "http://monitor3.proxy.com:8080"
)

# Check function
check_website() {
    local proxy=$1
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    local http_code=$(curl -x "$proxy" \
                           --max-time 10 \
                           -w "%{http_code}" \
                           -o /dev/null \
                           -s \
                           "$target_url")
    
    if [[ "$http_code" == "200" ]]; then
        echo "$timestamp [OK] $proxy - HTTP $http_code" | tee -a "$log_file"
    else
        echo "$timestamp [FAIL] $proxy - HTTP $http_code" | tee -a "$log_file"
    fi
}

# Monitor continuously
while true; do
    for proxy in "${monitor_proxies[@]}"; do
        check_website "$proxy"
    done
    sleep 300  # Check every 5 minutes
done

Ces exemples montrent comment cURL avec proxy peut remplacer des solutions d'automatisation de navigateur plus complexes pour de nombreuses tâches de collecte de données, en offrant de meilleures performances et une meilleure efficacité des ressources que les navigateurs headless.

Résolution des problèmes courants

Problèmes de connexion

Problème: erreurs de connexion refusée

curl: (7) Failed to connect to proxy.example.com port 8080: Connection refused

Des solutions:

  1. Vérifiez que le serveur proxy est en cours d'exécution
  2. Vérifiez les paramètres du pare-feu
  3. Testez avec : telnet proxy.example.com 8080

Problème: échecs d'authentification du proxy

curl: (407) Proxy Authentication Required

Des solutions:

# Verify credentials
curl -x http://proxy:8080 -U correct_user:correct_pass https://httpbin.org/ip

# Try different auth methods
curl -x http://proxy:8080 -U user:pass --proxy-digest https://httpbin.org/ip

Problèmes liés aux certificats SSL

Problème: échecs de vérification SSL

curl: (60) SSL certificate problem: self signed certificate

Des solutions:

# Temporary fix (testing only)
curl -k -x https://proxy:8443 https://example.com

# Proper fix: Add CA certificate
curl --cacert /path/to/ca-bundle.crt -x https://proxy:8443 https://example.com

Problèmes de performance

Commandes de diagnostic:

# Verbose output for debugging
curl -v -x http://proxy:8080 https://example.com

# Set timeouts
curl --connect-timeout 10 --max-time 30 -x http://proxy:8080 https://example.com

# Test proxy speed
time curl -x http://proxy:8080 -o /dev/null -s https://httpbin.org/ip

Pour obtenir des informations sur l'optimisation des performances, consultez notre indices de performance des proxys résidentiels.

Meilleures pratiques

Meilleures pratiques en matière de sécurité

1. Utiliser des proxys HTTPS pour les données sensibles:

curl -x https://secure-proxy:8443 https://api.bank.com/account

2. Vérifiez les certificats SSL en production:

curl --cacert company-ca.crt -x https://proxy:8443 https://api.example.com

3. Gestion sécurisée des informations d'identification:

# Use environment variables
export PROXY_USER="username"
export PROXY_PASS="password"
curl -x http://proxy:8080 -U "$PROXY_USER:$PROXY_PASS" https://example.com

Optimisation des performances

1. Réutilisation des connexions:

curl -x http://proxy:8080 --keepalive-time 60 https://example.com

2. Traitement parallèle:

# Process multiple URLs concurrently
parallel -j 10 curl -x http://proxy:8080 {} ::: url1 url2 url3

3. Optimisez pour le web scraping:

curl -x http://proxy:8080 \
     --compressed \
     --location \
     --user-agent "Mozilla/5.0..." \
     --cookie-jar cookies.txt \
     https://example.com

Limitation de débit et conformité

1. Mettez en œuvre un grattage respectueux:

# Rate limiting
request_with_delay() {
    curl -x http://proxy:8080 "$1"
    sleep $((RANDOM % 5 + 2))
}

2. Rotation utilisateur-agent:

user_agents=(
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
)
ua=${user_agents[$((RANDOM % ${#user_agents[@]}))]}
curl -x http://proxy:8080 -H "User-Agent: $ua" https://example.com

Référence complète des commandes proxy cURL

<table class="GeneratedTable">
<thead>
<tr>
<th>Commande</th>
<th>Descriptif</th>
<th>Exemple</th>
</tr>
</thead>
<tbody>
<tr>
<td>-x, --proxy</td>
<td>Spécifier le serveur proxy</td>
<td><code>curl -x http://proxy:8080 https://example.com</code></td>
</tr>
<tr>
<td>-U, --utilisateur proxy</td>
<td>Authentification par proxy</td>
<td><code>curl -x http://proxy:8080 -U utilisateur:pass https://example.com</code></td>
</tr>
<tr>
<td>--chaussettes5</td>
<td>Utiliser le proxy SOCKS5</td>
<td><code>curl --socks5 proxy : 1080 https://example.com</code></td>
</tr>
<tr>
<td>--chaussettes4</td>
<td>Utiliser le proxy SOCKS4</td>
<td><code>curl --socks4 proxy : 1080 https://example.com</code></td>
</tr>
<tr>
<td>--aucun proxy</td>
<td>Contourner le proxy pour les hôtes</td>
<td><code>curl --noproxy example.com https://example.com</code></td>
</tr>
<tr>
<td>--en-tête proxy</td>
<td>En-têtes de proxy personnalisés</td>
<td><code>curl --proxy-header « Authentification : jeton » https://example.com</code></td>
</tr>
<tr>
<td>--proxy-digest</td>
<td>Authentification Digest</td>
<td><code>utilisateur curl -U : pass --proxy-digest https://example.com</code></td>
</tr>
<tr>
<td>--proxy-ntlm</td>
<td>Authentification NTLM</td>
<td><code>utilisateur curl -U : pass --proxy-ntlm https://example.com</code></td>
</tr>
</tbody>
</table>

Exemples de commandes complexes

# Download file through authenticated proxy
curl -x http://proxy:8080 -U user:pass -O https://example.com/file.zip

# POST data through SOCKS5 proxy
curl --socks5 proxy:1080 -X POST -d "name=John" https://api.example.com/users

# Custom headers with proxy
curl -x http://proxy:8080 -H "User-Agent: Bot/1.0" https://api.example.com

# Upload file through proxy
curl -x http://proxy:8080 -U user:pass -F "file=@document.pdf" https://upload.example.com

# Complex authentication with headers
curl -x https://secure-proxy:8443 \
     --proxy-header "X-API-Key: your-key" \
     -H "Authorization: Bearer api-token" \
     https://api.example.com/data

Conclusion

La maîtrise de cURL à l'aide de proxys fournit de puissantes fonctionnalités pour la collecte de données, les tests d'API, le web scraping et l'automatisation du réseau. Ce guide couvre tout, de la configuration de base du proxy aux configurations d'entreprise avancées.

Principaux points à retenir :

  • Commencez par configurer un proxy HTTP de base à l'aide du -x drapeau
  • Utilisez des proxys HTTPS et une authentification appropriée pour une transmission de données sécurisée
  • Mettre en œuvre la rotation des proxys et la surveillance de l'état des systèmes de production
  • Choisissez le bon type de proxy en fonction de vos besoins spécifiques
  • Surveillez les performances et optimisez les configurations pour de meilleurs résultats

Que vous créiez des pipelines de données, que vous testiez des applications mondiales ou que vous mettiez en œuvre des solutions de web scraping, ces techniques vous aideront à exploiter efficacement cURL et les proxys.

Pour les besoins de collecte de données et de collecte de données sur le Web de production, pensez à Le réseau proxy résidentiel de Massive, qui fournit une infrastructure proxy fiable et performante conçue pour relever les défis modernes en matière de collecte de données.

About the author
Jason Grad
Co-fondateur

Je suis le co-fondateur et PDG de Massive. En plus de travailler sur des startups, je suis musicienne, athlète, mentor, animatrice d'événements et bénévole.

Question fréquemment posée

+

+

+

+

+

+

+

+

+

+

Ready to test premium proxy performance?