Dans cet article, nous allons aborder :
- Qu’est-ce que curl
- Installation de curl.
- Ce dont vous avez besoin pour commencer à utiliser des proxys
- Comment spécifier un proxy HTTP/HTTPS dans curl.
- Comment configurer des proxys SOCKS dans curl
- Astuces et conseils à connaître
- Quels proxys sont les meilleurs pour curl ?
Qu’est-ce que cURL ?
cURL, abréviation de “Client URL”, est un outil pour envoyer et recevoir des données sur Internet à l’aide d’URLs. En tant que projet logiciel, il fournit à la fois une bibliothèque (libcurl) et un outil en ligne de commande (curl). Ici, nous nous concentrerons sur curl, l’outil en ligne de commande pour transférer des données via la syntaxe URL.
Le projet prend en charge un large éventail de protocoles, notamment HTTP, HTTPS, FTP, FTPS, SFTP, POP3, POP3S, IMAP, IMAPS, LDAP, LDAPS, SCP, et plus encore. Cela fait de curl le client HTTP en ligne de commande le plus populaire et le plus utilisé au monde.
cURL est très polyvalent et représente une solution courante pour effectuer diverses tâches, telles que faire des requêtes HTTP, télécharger des fichiers, envoyer des données et interagir avec des API. Il offre plusieurs fonctionnalités, de la personnalisation des requêtes au support des proxys.
Installation de curl
Apprenons maintenant comment installer curl sur votre machine.
macOS
Vous n’avez pas besoin d’installer curl sur macOS. L’outil est déjà inclus dans le système d’exploitation, et vous pouvez l’utiliser nativement dans l’application Terminal.
Windows
Depuis Windows 10, Windows est livré avec une copie de curl. En même temps, la commande curl est un alias de la commande PowerShell Invoke-WebRequest. Cela signifie que les commandes curl dans le terminal Windows invoqueront Invoke-Request en arrière-plan. Pour éviter cela et utiliser réellement curl depuis cURL, remplacez “curl” par “curl.exe”. Ainsi, PowerShell exécutera curl et non Invoke-Request.
Par exemple, vous pouvez vérifier la version actuelle de curl installée sur votre machine Windows dans le terminal avec :
curl.exe --version
Cela devrait afficher quelque chose de similaire à :
curl 8.0.1 (Windows) libcurl/8.0.1 Schannel WinIDN
Release-Date: 2023-03-20
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
Si vous êtes un utilisateur Windows, remplacez toutes les instances de “curl” dans les commandes de l’article par la chaîne “curl.exe”. Sinon, configurez le sous-système Windows pour Linux (WSL) et suivez les instructions ci-dessous.
Linux
Sur Linux, la procédure d’installation de curl change selon la distribution spécifique que vous utilisez. Les distributions Linux populaires, telles qu’Ubuntu et Fedora, l’incluent par défaut. Ainsi, vous pouvez utiliser curl directement dans le terminal.
Dans d’autres distributions, curl peut ne pas être inclus. Dans ce cas, vous pouvez l’ajouter à l’aide du gestionnaire de paquets de la distribution. Sur un système basé sur Debian, vous pouvez installer curl avec la commande suivante :
sudo apt-get install curl
Ce dont vous avez besoin pour utiliser un proxy dans curl
Un proxy agit comme un intermédiaire entre le client et le serveur de destination. Il intercepte les requêtes du client, les transmet au serveur, reçoit la réponse du serveur, et la renvoie au client. Cette approche d’intermédiaire augmente l’anonymat et aide à éviter les restrictions réseau. Cela s’explique par le fait que le serveur de destination verra les requêtes comme provenant de l’IP et de l’emplacement du serveur proxy choisi, et non de vous.
Pour commencer à utiliser curl avec des services proxy, vous devez d’abord avoir accès à un proxy. Voici précisément la syntaxe d’une URL de proxy :
[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]
Cela se compose de :
<PROTOCOLE>: Le protocole à utiliser pour se connecter au serveur proxy. Si aucun protocole n’est spécifié, curl utilisera http:// par défaut.<HÔTE>: L’adresse IP ou l’URL requise du nom d’hôte du serveur proxy.<PORT>: Le numéro de port que le serveur proxy écoute. Si aucun port n’est spécifié, curl utilisera 1080 par défaut.<NOM_UTILISATEUR>: Le nom d’utilisateur optionnel à spécifier lorsque l’authentification est requise.<MOT_DE_PASSE>: Le mot de passe optionnel à spécifier lorsque l’authentification est requise.
Quant aux protocoles de proxy, les plus populaires sont HTTP et HTTPS, suivis de SOCKS.
Il est temps de récupérer un proxy HTTP valide !
Vous pouvez en obtenir un gratuitement sur Free Proxy List, comme ci-dessous :
Adresse IP : 71.19.249.97 ; Port : 8443
Cela signifie que l’URL du proxy est :
http://71.19.249.97:8443
Opter pour une telle solution est acceptable à des fins d’apprentissage, mais vous ne pouvez pas vous y fier dans un scénario réel. Les services de proxy gratuits ne sont pas fiables, sujets aux erreurs, lents, gourmands en données et éphémères. Ne les utilisez pas !
La solution ? Les proxys premium de Bright Data, le meilleur fournisseur sur le marché. Créez un compte et essayez nos proxys fiables.
Gardez à l’esprit que les solutions premium sont protégées par une authentification. Supposons que le protocole soit HTTP, l’hôte soit 71.103.203.109, et le port soit 9321, et la paire d’identifiants soit admin-32458 et rTuJ3tEwf. Dans ce cas, l’URL du proxy curl serait :
http://admin-32458:@rTuJ3tEwf71.103.203.109:9321
Comment spécifier un proxy HTTP/HTTPS dans curl
Avant de commencer, lancez la commande ci-dessous dans votre terminal :
curl "https://httpbin.org/ip"
Comme vous pouvez le voir, la syntaxe de base de curl est :
curl [commandes_optionnelles] <URL>
Une bonne pratique de curl recommande d’entourer les URL de guillemets doubles pour éviter les problèmes avec les caractères spéciaux.
Exécutez-la et vous devriez obtenir quelque chose comme ceci :
{
"origin": "194.33.243.7"
}
Le projet HTTPBin vous permet d’obtenir des informations sur vos requêtes HTTP. En détail, le point de terminaison /ip renvoie l’IP d’origine de la requête, qui est l’adresse IP de la machine ayant effectué la requête. En d’autres termes, il renvoie votre IP.
Après avoir configuré un proxy dans curl, vous devriez voir l’adresse IP du serveur proxy et non la vôtre.
Il existe plusieurs façons de définir un proxy dans curl. Passons maintenant aux approches les plus populaires pour spécifier un proxy HTTP/HTTPS dans curl.
Utilisation d’un argument en ligne de commande
curl propose deux arguments en ligne de commande pour définir une URL de proxy :
-x--proxy
Les deux peuvent être utilisés de manière interchangeable, car ils font exactement la même chose. Le second est simplement un alias du premier.
Ainsi, la syntaxe pour utiliser curl avec des services proxy devient :
curl -x [<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>] <URL>
Ou :
curl --proxy [<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>] <URL>
Remarque : Les options en ligne de commande sont sensibles à la casse dans curl. Par exemple, -x et -X ont deux significations différentes.
Si vous lancez maintenant :
curl -x "http://71.19.249.97:8443" "https://httpbin.org/ip"
Ou l’équivalent :
curl --proxy "http://71.19.249.97:8443" "https://httpbin.org/ip"
Vous devriez obtenir :
{
"origin": "71.19.249.97"
}
L’origine correspond à l’IP du serveur proxy. Cela signifie que le site cible voit la requête comme provenant du proxy, comme souhaité. Parfait !
N’oubliez pas que les proxys gratuits sont éphémères, donc le serveur ci-dessus risque fort de ne plus être actif au moment où vous lisez cet article. En cas d’erreur, remplacez-le par un proxy récent.
Utilisation de variables d’environnement
Une autre façon d’utiliser un proxy dans curl consiste à définir les deux variables d’environnement suivantes :
http_proxy: L’URL du serveur proxy à utiliser pour accéder aux URLs impliquant le protocole HTTP.https_proxy: L’URL du serveur proxy à utiliser pour accéder aux URLs impliquant le protocole HTTP.
Sur macOS et Linux, vous pouvez définir ces deux environnements avec la syntaxe ci-dessous :
export http_proxy="[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]"
export https_proxy="[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]"
Ainsi, les deux commandes deviendront :
export http_proxy="http://71.19.249.97:8443"
export https_proxy="http://71.19.249.97:8443"
Sur Windows, vous devez utiliser cette syntaxe PowerShell :
$env:http_proxy = "[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]"
$env:https_proxy = "[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]"
Ensuite, dans notre exemple :
$env:http_proxy = "http://71.19.249.97:8443"
$env:https_proxy = "http://71.19.249.97:8443"
À partir de maintenant, chaque commande curl passera par les proxys spécifiés sans avoir besoin d’utiliser l’option -x :
Encore une fois, cela renverra :
curl https://httpbin.org/ip
{
"origin": "71.19.249.97"
}
Pour désactiver les proxys curl, annulez les variables d’environnement avec :
unset http_proxy
unset https_proxy
Ou sur Windows :
$env:http_proxy = ""
$env:https_proxy = ""
curl reviendra à son comportement standard et https://httpbin.org/ip renverra désormais votre IP.
Utilisation d’un fichier de configuration
Vous pouvez spécifier globalement un proxy pour curl en créant un fichier de configuration .curlrc.
Sur Linux et macOS, ouvrez le terminal et naviguez vers votre répertoire personnel :
cd ~
Ensuite, accédez au .curlrc avec nano :
nano .curlrc
Si le fichier existe déjà, il sera ouvert. Sinon, il sera d’abord créé puis ouvert.
Ajoutez la ligne suivante au fichier .curlrc :
proxy="http://71.19.249.97:8443"
La syntaxe de cette instruction est :
proxy="[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]"
Enregistrez le fichier, fermez le terminal et relancez-le.
Sur Windows, vous devez créer un fichier _curlrc dans le répertoire %APPDATA% avec le même contenu. Collez %APPDATA% dans la barre d’adresse de l’explorateur de fichiers et appuyez sur ENTRÉE pour accéder au répertoire.

Cela devrait vous amener à C:Users<VOTRE_UTILISATEUR>AppDataRoaming.
Maintenant, curl utilisera automatiquement le proxy spécifié dans le fichier de configuration :
curl "http://httpbin.org/ip"
Vous obtiendrez :
{
"origin": "71.19.249.97"
}
Fantastique ! Vous venez d’apprendre à utiliser curl avec des serveurs proxy de trois façons différentes !
Comment configurer des proxys SOCKS dans curl
Si vous souhaitez utiliser un proxy SOCKS, la structure de la commande reste la même :
curl -x [<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>] <URL>
La principale différence est que <PROTOCOLE> sera socks4, socks4a, socks5, ou socks5h, au lieu de http et https.
Un exemple complet d’un proxy SOCKS curl en action est :
curl -x "socks5://94.14.109.54:2478" "http://httpbin.org/ip"
Comme vous pouvez vous y attendre, le résultat sera :
{
"origin": "94.14.109.54"
}
Une approche alternative implique les options en ligne de commande --socks4, --socks4a, --socks5 au lieu de -x. Dans ce cas, vous devez définir l’URL du proxy sans nom d’utilisateur ni mot de passe après l’option, puis les identifiants après --proxy-user :
curl --socks4|--socks4a|--socks5 <HÔTE>[:<PORT>] <URL> --proxy-user <NOM_UTILISATEUR>:<MOT_DE_PASSE>
Par exemple :
curl --socks4 "93.16.238.41:8721" "http://httpbin.org/ip" --proxy-user admin334:kv4NsDgc3
Cela se connectera à HTTPBin via le proxy socks4 93.16.238.41:8721, en utilisant admin334 comme nom d’utilisateur et kv4NsDgc3 comme mot de passe pour l’authentification.
Astuces et conseils à connaître
Dans cette section, vous découvrirez des astuces intéressantes et des conseils précieux pour gérer un proxy curl comme un professionnel.
Activer et désactiver rapidement les proxys
L’idée ici est de définir des alias pour définir et annuler des proxys par programmation via des variables d’environnement avec des commandes personnalisées.
Sur macOS et Linux, vous pouvez le faire en créant un fichier .bashrc. Il s’agit d’un fichier script exécuté à chaque connexion de l’utilisateur.
Déplacez-vous vers votre répertoire personnel :
cd ~
Ensuite, créez ou ouvrez un fichier .bashrc :
nano .bashrc
Ajoutez le contenu au format ci-dessous dans le fichier :
alias proxyon="export http_proxy='[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]';export https_proxy='[<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>]'"
alias proxyoff="unset http_proxy;unset https_proxy"
Ainsi, dans notre exemple, ce serait :
alias proxyon="export http_proxy='http://71.19.249.97:8443';export https_proxy='http://71.19.249.97:8443'"
alias proxyoff="unset http_proxy;unset https_proxy"
Enregistrez le fichier et redémarrez votre machine.
Maintenant, vous pouvez activer et désactiver un proxy curl avec :
proxyon
curl "http://httpbin.org/ip"
# autres requêtes HTTP...
proxyoff
Notez les commandes personnalisées proxyon et proxyoff. Celles-ci effectuent les opérations spécifiées par les alias dans le fichier .bashrc.
Sur Windows, vous pouvez obtenir quelque chose de similaire avec les alias PowerShell.
Ignorer les proxys pour une seule requête
Si vous souhaitez empêcher curl d’utiliser un proxy configuré pour une requête spécifique, vous pouvez utiliser l’argument --noproxy "*" comme ci-dessous :
curl --noproxy "*" <URL>
Cela indique à curl de ne pas utiliser de proxys pour toutes les URLs.
Configurez un proxy et exécutez :
curl --noproxy "*" "https://httpbin.org/ip"
L’origine résultante contiendra votre IP, et non celle du serveur proxy.
Éviter les erreurs de certificat SSL
Lorsque vous utilisez des proxys dans curl, vos requêtes peuvent échouer en raison d’erreurs de certificat SSL. Pour éviter cela, utilisez l’option -k comme dans la syntaxe ci-dessous :
curl -x [<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>] -k <URL>
-k vous aide à éviter les erreurs de certificat en autorisant les connexions de serveur non sécurisées via SSL.
Par exemple, vous pouvez contacter HTTPBin en contournant les problèmes SSL avec :
curl -x "http://71.19.249.97:8443" -k "https://httpbin.org/ip"
Obtenir plus d’informations sur la requête
Lorsqu’une requête dans curl échoue, il n’est pas facile de comprendre ce qui s’est passé. Pour diagnostiquer l’erreur et voir toutes les opérations effectuées par curl, définissez l’option -v :
curl -x [<PROTOCOLE>://][<NOM_UTILISATEUR>:<MOT_DE_PASSE>]@<HÔTE>[:<PORT>] -v <URL>
Cela affichera les détails sur les connexions établies et les en-têtes utilisés par l’outil :
$curl -x "http://71.19.249.97:8443" -v "https://httpbin.org/ip"
* Trying 71.19.249.97:8443...
* Connected to 71.19.249.97 (71.19.249.97) port 8443 (#0)
* allocate connect buffer
* Establish HTTP proxy tunnel to httpbin.org:443
> CONNECT httpbin.org:443 HTTP/1.1
> Host: httpbin.org:443
> User-Agent: curl/8.0.1
> Proxy-Connection: Keep-Alive
>
< HTTP/1.0 200 OK
<
* CONNECT phase completed
* CONNECT tunnel established, response 200
* schannel: disabled automatic use of client certificate
* ALPN: offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
> GET /ip HTTP/1.1
> Host: httpbin.org
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sat, 26 Aug 2023 10:39:13 GMT
< Content-Type: application/json
< Content-Length: 31
< Connection: keep-alive
< Server: gunicorn/19.9.0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
<
{
"origin": "71.19.249.97"
}
* Connection #0 to host 71.19.249.97 left intact
Quels proxys sont les meilleurs pour curl ?
La réponse à cette question dépend de votre cas d’utilisation et de la nature des requêtes curl que vous devez effectuer. Pour trouver la bonne solution à vos besoins, jetez un œil aux différents types de proxys disponibles :
- Proxy de centre de données : Ils sont rapides mais peuvent être détectés et bloqués facilement par les sites en raison de leurs plages d’IP identifiables.
- Proxys résidentiels : Ils garantissent un niveau élevé d’anonymat car ils offrent des adresses IP provenant d’appareils réels dans des emplacements spécifiques. Les proxys résidentiels sont parfaits pour accéder à des sites s’appuyant sur des blocages de géo-restriction ou des mesures anti-bot, et pour effectuer du scraping web avec curl.
- Proxy ISP : Ils sont rapides, sécurisés et très fiables car ils fournissent des IP provenant d’appareils enregistrés auprès des FAI. Les proxys ISP représentent une solution parfaite pour la surveillance SEO, la navigation web et l’étude de marché.
Ce n’était qu’un bref résumé, mais vous pouvez en savoir plus dans notre guide des types de proxy IP.
Conclusion
Dans ce guide sur le proxy curl, vous avez appris ce qu’est cURL, ce qu’il a à offrir, et comment configurer un proxy HTTP/HTTPS/SOCKS. Il s’avère que vous ne pouvez pas compter sur curl avec des services proxy de fournisseurs gratuits. Ainsi, la principale décision technique à prendre est de choisir quel fournisseur de proxy adopter. Gagnez du temps et de l’énergie et optez pour le meilleur sur le marché, Bright Data.
Bright Data contrôle les meilleurs serveurs proxy au monde, au service des entreprises du Fortune 500 et de 50,000+ clients. Son réseau proxy mondial comprend :
- Proxy de centre de données – 1,300,000+ IP de centre de données.
- Proxys résidentiels – 400M+ IP résidentielles dans plus de 195 pays.
- Proxy ISP – 1,300,000+ IP ISP.
Dans l’ensemble, c’est l’un des réseaux proxy orientés scraping les plus vastes et les plus fiables sur le marché. Rejoignez dès aujourd’hui le plus grand réseau proxy !