eseguire richieste HTTP con cURL (usando PROXY)

Ho questo indirizzo proxy: 125.119.175.48:8909

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

Modo generale:

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

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

E, come da commento qui sotto, per https:

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

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. 

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!

Fai attenzione che se stai usando un proxy SOCKS, invece di un proxy HTTP / HTTPS, dovrai invece utilizzare l’ --socks5 :

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

come adition to airween, un’altra buona idea è quella di aggiungere questo nel tuo .bashrc, così potrai passare da un ambiente non proxy a 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 

Puoi usare :

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

come spiegato da Karl

utilizza il seguente

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

192.168.XX:XX posiziona l’ip e la porta del tuo server proxy.

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

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.

Per curl puoi configurare il proxy nel tuo file ~/.curlrc aggiungendo valore proxy , la syntax è:

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

Con un proxy con autenticazione io uso:

 curl -x ://:@: --proxy-anyauth  

perché, non so perché il ricciolo non usa / cattura le variabili di ambiente http [s] _proxy .

Riassumendo tutte le grandi risposte citate:

 curl -x http://:@:/ -o  -L  

Non è necessario esportare la variabile della shell http[s]_proxy se si sta solo 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.

A seconda del luogo di lavoro, potrebbe anche essere necessario specificare l’opzione -k o l’opzione --insecure per il ricciolo per --insecure potenziali problemi con i certificati CA.

 curl -x : -k -O -L  

Nel caso in cui il proxy utilizza proxy automatico con file PAC. Possiamo trovare il proxy effettivo dal javascript dall’URL del PAC.

E se il proxy ha bisogno di autenticazione, possiamo prima usare un normale browser Web per accedere al sito Web che promuoverà la finestra di autenticazione. Dopo l’autenticazione, possiamo usare wireshark per acquisire il pacchetto HTTP inviato al server proxy, dal pacchetto http, possiamo ottenere il token auth dall’intestazione http: Proxy-Authorization

Quindi possiamo impostare la variabile di ambiente http_proxy e includere anche il token di autenticazione nell’intestazione http: Proxy-Authorization

export http_proxy = http: // proxyserver: port

curl -H “Autorizzazione proxy: xxxx” http: // targetURL