it-swarm.dev

executando solicitações HTTP com cURL (usando PROXY)

Eu tenho este endereço de proxy: 125.119.175.48:8909

Como posso executar uma solicitação HTTP usando cURL como curl http://www.example.com, mas especificando o endereço de proxy da minha rede?

380
user873286

Maneira geral:

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

Então você pode se conectar através de proxy de (muitos) aplicativo.

E, conforme comentário abaixo, para https:

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

De 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

As soluções acima podem não funcionar com algumas versões de curvas que eu experimentei para mim (onda 7.22.0). Mas o que funcionou para mim foi:

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

Espero que resolva a questão melhor!

108
Amar

Tenha em atenção que, se estiver a utilizar um proxy SOCKS, em vez de um proxy HTTP/HTTPS, terá de utilizar o parâmetro --socks5:

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

Você também pode usar --socks5-hostname em vez de --socks5 para resolver o DNS no lado do proxy.

71
Filipe Correia

como uma adição ao airween, outra boa idéia é adicionar isso ao seu .bashrc, assim você poderá alternar do ambiente não-proxy para o proxy;

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

ONDE YOURPROXY: YOURPORT é exatamente isso, seu ip e proxy de porta :-).

Então, simplesmente fazendo

proxyon

seu sistema começará a usar o proxy, e exatamente o oposto com:

proxyoff
47
Alejandro Moreno

use o seguinte

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

192.168.X.X:XX coloca o seu servidor proxy ip e porta.

-v verbose mode dará mais detalhes, incluindo cabeçalhos e respostas.

31
13krn

você pode usar :

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

como explicado por Karl

29
smitkpatel

Eu gosto de usar isso para obter o IP sob o qual eu sou visto

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

Espero que isso ajude alguém.

21
bmetge

Para curl você pode configurar o proxy em seu arquivo ~/.curlrc (_curlrc no Windows) adicionando o valor proxy, a sintaxe é:

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

Apenas resumindo todas as grandes respostas mencionadas:

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

Com um proxy com autenticação eu uso:

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

porque, eu não sei porque o curl não usa/catch http [s] _proxy environment variables.

7
Pedro R. Sánchez A.

Dependendo do seu local de trabalho, você também pode precisar especificar a opção -k ou --insecure para curl, a fim de superar possíveis problemas com certificados de CA.

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

Você não precisa exportar a variável Shell http[s]_proxy se estiver apenas configurando o proxy para um comando one off. por exemplo.

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

Dito isso, eu prefiro curl -x se eu soubesse que sempre usaria um proxy.

2
overthink