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?
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?
Risposte:
Modo generale:
export http_proxy=http://your.proxy.server:port/
Quindi è possibile connettersi tramite proxy da (molte) applicazioni.
E, come da commento sotto, per https:
export https_proxy=https://your.proxy.server:port/
Da 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.
-x user:password@proxyhost:port
Le soluzioni di cui sopra potrebbero non funzionare con alcune versioni di arricciatura che le ho provate io stesso (arricciatura 7.22.0). Ma ciò 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!
[1] 4812
Attenzione, se si utilizza un proxy SOCKS, anziché un proxy HTTP / HTTPS, sarà necessario utilizzare l' --socks5
opzione invece:
curl --socks5 125.119.175.48:8909 http://example.com/
È inoltre possibile utilizzare --socks5-hostname
invece di --socks5
risolvere DNS sul lato proxy.
--socks5-hostname
fatto.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
sembra funzionare bene per me. L' --proxy
opzione è in qualche modo inferiore rispetto --socks5
all'utilizzo dei proxy socks5?
--proxy
è probabilmente quello che vuoi, ora, ma non è sempre stato supportato. Si noti inoltre che socks5://
ed socks5h://
eseguire la risoluzione del nome host (DNS) prima e dopo la connessione al proxy, rispettivamente.
come adition to airween, un'altra buona idea è quella di aggiungere questo nel tuo .bashrc, così sarai in grado di passare dall'ambiente non proxy a quello 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 proxy IP e porta :-).
Quindi, semplicemente facendo
proxyon
il tuo sistema inizierà a utilizzare il proxy, e esattamente il contrario con:
proxyoff
utilizza il seguente
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
inserisci l'ip e la porta del tuo server proxy.
-v
modalità dettagliata fornirà maggiori dettagli tra cui intestazioni e risposta.
Puoi usare :
curl http://www.example.com --proxy http://125.119.175.48:8909
come spiegato da Karl
Poiché curl
puoi configurare il proxy nel tuo file ~/.curlrc
( _curlrc
su Windows) aggiungendo proxy
valore, la sintassi è:
proxy = http://username:password@proxy-host:port
Riassumendo tutte le grandi risposte menzionate:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Con un proxy con autenticazione utilizzo:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
perché, non so perché curl non usi / catturi le variabili di ambiente http [s] _proxy .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Non è necessario esportare la http[s]_proxy
variabile shell se si sta semplicemente impostando il proxy per un comando una tantum. per esempio
http_proxy=http://your.proxy.server:port curl http://www.example.com
Detto questo, preferirei curl -x
se sapessi che avrei sempre usato un proxy.
A seconda del posto di lavoro, potrebbe essere necessario specificare -k
l' --insecure
opzione o per l'arricciatura per superare potenziali problemi con i certificati CA.
curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
Questo ha funzionato perfettamente per me, l'errore viene perché l'arricciatura deve impostare il proxy
Ricorda di sostituire il proxy con il tuo proxy, il mio, "esempio" era http://10.1.1.50:8080/ .
Nel caso in cui il proxy stia utilizzando un proxy automatico con file PAC. Possiamo trovare il proxy effettivo dal javascript dall'URL PAC.
E se il proxy necessita di autenticazione, possiamo prima utilizzare un normale browser Web per accedere al sito Web che promuoverà il dialogo di autenticazione. Dopo l'autenticazione, possiamo usare WireShark per acquisire il pacchetto http che invia al server proxy, dal pacchetto http, possiamo ottenere il token di autenticazione 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