it-swarm-eu.dev

eseguire richieste HTTP con cURL (usando PROXY)

Ho questo indirizzo proxy: 125.119.175.48:8909

Come posso eseguire una richiesta HTTP usando cURL come curl http://www.example.com, ma specificando l'indirizzo proxy della mia rete?

380
user873286

Modo generale:

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

Quindi è possibile connettersi tramite proxy da (molte) applicazioni.

E, come da commento qui sotto, per https:

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

Da man curl:

-x, --proxy <[protocol://][user:[email protected]]proxyhost[:port]>

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

Le soluzioni di cui sopra potrebbero non funzionare con alcune versioni di arricciamento che ho provato per me (curl 7.22.0). Ma quello che ha funzionato per me è stato:

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

Spero che risolva meglio il problema!

108
Amar

Fare attenzione che se si sta utilizzando un proxy SOCKS, anziché un proxy HTTP/HTTPS, sarà necessario utilizzare invece l'opzione --socks5:

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

Puoi anche utilizzare --socks5-hostname anziché --socks5 per risolvere DNS sul lato proxy.

71
Filipe Correia

come adition per airween, un'altra buona idea è quella di aggiungere questo nel tuo .bashrc, così sarai in grado di passare da un ambiente non proxy ad un proxy:

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

DOVE YOURPROXY: YOURPORT è esattamente questo, il tuo ip e port proxy :-).

Quindi, semplicemente facendo

proxyon

il tuo sistema inizierà a utilizzare il proxy e, al contrario, con:

proxyoff
47
Alejandro Moreno

utilizza il seguente

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

192.168.X.X:XX inserisce l'ip e la porta del tuo server proxy.

-v modalità verbose fornirà maggiori dettagli tra cui intestazioni e risposta.

31
13krn

puoi usare :

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

come spiegato da Karl

29
smitkpatel

Mi piace usare questo per ottenere l'IP sotto il quale sono visto

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

Spero che questo aiuti qualcuno.

21
bmetge

Per curl puoi configurare il proxy nel tuo file ~/.curlrc (_curlrc su Windows) aggiungendo il valore proxy, la sintassi è:

proxy = http://username:[email protected]:port
16
kenorb

Riassumendo tutte le grandi risposte citate:

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

Con un proxy con autenticazione io uso:

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

perché, non so perché il ricciolo non usa/catch http [s] _proxy variabili d'ambiente.

7

A seconda del luogo di lavoro, potrebbe anche essere necessario specificare -k o l'opzione --insecure per arricciare al fine di superare potenziali problemi con i certificati CA.

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

Non è necessario esportare la variabile Shell http[s]_proxy se si sta semplicemente impostando il proxy per un comando one off. per esempio.

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

Detto questo, preferirei curl -x se sapessi che userò sempre un proxy.

2
overthink