A linha única#
curl -x http://USER-cc-us:PASS@res.proxy-cyber.com:9000 https://api.ipify.org-x (ou --proxy) usa o URL do proxy com credenciais incorporadas. cURL encapsula destinos HTTPS com CONNECT automaticamente e pede ao proxy para resolver o nome do host.
Bandeiras que vale a pena conhecer#
| Bandeira | Objetivo |
|---|---|
| -x, --proxyURL | O proxy: esquema, host, porta, credenciais opcionais |
| -U, --proxy-user usuário:passar | Credenciais separadamente, úteis quando a senha possui caracteres especiais |
| --proxy-básico | Forçar autenticação proxy básica (o padrão quando uma senha é fornecida) |
| -v | Mostrar a troca CONNECT, os códigos de status do proxy e os cabeçalhos de resposta |
| --noproxy '*' | Ignorar variáveis de ambiente de proxy para esta chamada |
| -w '%{time_total}\n' | Imprimir tempo para comparar saídas |
SOCKS5 e DNS remoto#
# Hostname resolved at the exit (recommended)
curl -x socks5h://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.org
# Hostname resolved locally, then the IP is sent to the proxy (leaks the lookup)
curl -x socks5://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.orgVariáveis de ambiente#
Ferramentas que pagam para cURL e muitas outras homenageiam http_proxy, https_proxy e no_proxy. Exporte-os uma vez para uma sessão de trabalho.
export https_proxy="http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
export http_proxy="$https_proxy"
export no_proxy="localhost,127.0.0.1"
curl https://api.ipify.org # proxied without -xLendo uma falha#
curl -v -x http://USER:WRONG@res.proxy-cyber.com:9000 https://api.ipify.org 2>&1 | grep -E "CONNECT|HTTP/1.1 4|HTTP/1.1 5"
# < HTTP/1.1 407 Proxy Authentication Required -> credentials
# < HTTP/1.1 400 Bad Request -> a username parameter is wrong
# < HTTP/1.1 502 Bad Gateway -> no exit for that location; widen itUm status na linha CONNECT vem do gateway; um status depois Connection established vem do destino. O página de erros mapeia cada código de gateway.
Rotação de sessões em loop#
for i in $(seq 1 5); do
curl -s -x "http://USER-cc-us-sid-run$i-ttl-5m:PASS@res.proxy-cyber.com:9000" https://api.ipify.org
echo
done # five different United States exits, each reusable for five minutes under its idPerguntas que as pessoas fazem#
O cURL precisa de um sinalizador especial para HTTPS por meio do proxy?
Não. Com um URL de proxy http://, o cURL emite CONNECT para destinos https:// automaticamente; --proxytunnel é importante apenas para forçar um túnel em HTTP simples.
Minha senha contém @ ou: e cURL falha.
Passe as credenciais com -U user:pass em vez de incorporá-las no URL ou codifique em URL os caracteres especiais.