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?
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?
Respostas:
Maneira geral:
export http_proxy=http://your.proxy.server:port/
Em seguida, você pode conectar-se através de proxy a partir de (muitos) aplicativos.
E, conforme comentário abaixo, para https:
export https_proxy=https://your.proxy.server:port/
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.
-x user:password@proxyhost:port
As soluções acima podem não funcionar com algumas versões de curl que eu experimentei (curl 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 o problema melhor!
[1] 4812
Lembre-se de que, se você estiver usando um proxy SOCKS, em vez de um proxy HTTP / HTTPS, precisará usar a --socks5
opção:
curl --socks5 125.119.175.48:8909 http://example.com/
Você também pode usar em --socks5-hostname
vez de --socks5
resolver o DNS no lado do proxy.
--socks5-hostname
funcionou.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
parece funcionar bem para mim. A --proxy
opção é de alguma forma inferior à do --socks5
uso de proxies socks5?
--proxy
é provavelmente o que você deseja agora, mas nem sempre foi suportado. Observe também que socks5://
e socks5h://
execute a resolução de nome de host (DNS) antes e depois da conexão com o proxy, respectivamente.
como uma adição ao ar, outra boa idéia é adicionar isso ao seu .bashrc, para que você possa alternar do ambiente sem proxy para o ambiente com 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 proxy de porta e IP :-).
Então, simplesmente fazendo
proxyon
seu sistema começará a usar o proxy, e exatamente o oposto com:
proxyoff
use o seguinte
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
coloque o ip e a porta do servidor proxy.
-v
modo detalhado, ele fornecerá mais detalhes, incluindo cabeçalhos e resposta.
você pode usar :
curl http://www.example.com --proxy http://125.119.175.48:8909
como explicado por Karl
Para curl
você configurar o proxy no seu arquivo ~/.curlrc
( _curlrc
no Windows) adicionando proxy
valor, a sintaxe é:
proxy = http://username:password@proxy-host:port
Apenas resumindo todas as ótimas respostas mencionadas:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Com um proxy com autenticação eu uso:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
porque, não sei por que o curl não usa / captura variáveis de ambiente http [s] _proxy .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Você não precisa exportar a http[s]_proxy
variável do shell se estiver apenas configurando o proxy para um comando único. por exemplo
http_proxy=http://your.proxy.server:port curl http://www.example.com
Dito isto, eu preferiria curl -x
se soubesse que sempre usaria um proxy.
Dependendo do seu local de trabalho, você também pode precisar especificar -k
a --insecure
opção ou a opção curl para obter possíveis problemas anteriores com os certificados da 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
Isso funcionou perfeitamente para mim, o erro vem porque o curl precisa definir o proxy
Lembre-se de substituir o proxy pelo seu proxy, meu, "exemplo" era http://10.1.1.50:8080/ .
Caso o proxy esteja usando proxy automático com arquivo PAC. Podemos encontrar o proxy real a partir do javascript na URL do PAC.
E se o proxy precisar de autenticação, primeiro podemos usar um navegador da web normal para acessar o site que promoverá o diálogo de autenticação. Após a autenticação, podemos usar o wireshark para capturar o pacote http enviado ao servidor proxy, a partir do pacote http, podemos obter o token de autenticação no cabeçalho http: Proxy-Authorization
Em seguida, podemos definir a variável de ambiente http_proxy e também incluir o token de autenticação no cabeçalho http: Proxy-Authorization
exportar http_proxy = http: // proxyserver: port
curl -H "Autorização de proxy: xxxx" http: // targetURL