web-dev-qa-db-fra.com

effectuer des requêtes HTTP avec cURL (en utilisant PROXY)

J'ai cette adresse proxy: 125.119.175.48:8909

Comment puis-je effectuer une requête HTTP en utilisant cURL comme curl http://www.example.com, mais en spécifiant l'adresse proxy de mon réseau?

404
user873286

Manière générale:

export http_proxy=http://your.proxy.server:port/

Ensuite, vous pouvez vous connecter via un proxy à partir de (plusieurs) applications.

Et, comme dans le commentaire ci-dessous, pour https:

export https_proxy=https://your.proxy.server:port/
385
airween

De man curl:

-x, --proxy <[protocol://][user:password@]proxyhost[:port]>

     Use the specified HTTP proxy. 
     If the port number is not specified, it is assumed at port 1080.
591
Karl Barker

Les solutions ci-dessus peuvent ne pas fonctionner avec certaines versions de curl, je les ai essayées moi-même (curl 7.22.0). Mais ce qui a fonctionné pour moi a été:

curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url

J'espère que cela résoudra mieux le problème!

112
Amar

Attention, si vous utilisez un proxy SOCKS au lieu d'un proxy HTTP/HTTPS, vous devrez utiliser le commutateur --socks5:

curl --socks5 125.119.175.48:8909 http://example.com/

Vous pouvez également utiliser --socks5-hostname au lieu de --socks5 pour résoudre DNS du côté du proxy.

72
Filipe Correia

en complément de airween, une autre bonne idée est d’ajouter cela dans votre .bashrc, afin de pouvoir passer d’un environnement non proxy à un environnement proxy:

alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"

O YOURPROXY: YOURPORT est exactement cela, votre adresse IP et votre proxy de port :-).

Ensuite, il suffit de faire

proxyon

votre système commencera à utiliser le proxy, et au contraire avec:

proxyoff
48
Alejandro Moreno

utilisez le suivant

curl -I -x 192.168.X.X:XX http://google.com

192.168.X.X:XX mettez l'adresse IP et le port de votre serveur proxy.

-v mode verbeux, il donnera plus de détails, y compris les en-têtes et les réponses.

32
13krn

vous pouvez utiliser :

curl http://www.example.com --proxy http://125.119.175.48:8909

comme expliqué par Karl

29
smitkpatel

J'aime utiliser ceci afin d'obtenir l'adresse IP sous laquelle on me voit

curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo

J'espère que ça aide quelqu'un.

25
bmetge

Pour curl, vous pouvez configurer le proxy dans votre fichier ~/.curlrc (_curlrc sous Windows) en ajoutant la valeur proxy. La syntaxe est la suivante:

proxy = http://username:password@proxy-Host:port
17
kenorb

Résumant simplement toutes les bonnes réponses citées:

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
13
M. Mashaye

Avec un proxy avec authentification j'utilise:

curl -x <protocol>://<user>:<password>@<Host>:<port> --proxy-anyauth <url>

parce que, je ne sais pas pourquoi curl n’utilise pas/catch http [s] _proxy variables d’environnement.

8

En fonction de votre lieu de travail, vous devrez peut-être également spécifier l'option -k ou --insecure pour curl afin d'éviter les problèmes éventuels liés aux certificats de CA.

curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
2
Matt Legler

Vous n'avez pas besoin d'exporter la variable Shell _http[s]_proxy_ si vous configurez simplement le proxy pour une commande unique. par exemple.

_http_proxy=http://your.proxy.server:port curl http://www.example.com
_

Cela dit, je préférerais _curl -x_ si je savais que j'allais toujours utiliser un proxy.

2
overthink
Sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg

Cela a parfaitement fonctionné pour moi, l'erreur vient du fait que curl doit définir le proxy

Remmember remplace le proxy par votre proxy, le mien, "exemple" était http://10.1.1.50:8080/ .

0
IbarMario