Integrações · Iniciante

cURL por meio de um proxy: todas as opções importantes, com exemplos

cURL é a maneira mais rápida de provar que um proxy funciona e a referência que toda biblioteca imita. Aprenda seus cinco sinalizadores de proxy e você poderá depurar qualquer cliente.

2 minutos de leitura 6 seções Revisto Equipa editorial Proxy Cyber

A linha única#

Primeira solicitação
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#

BandeiraObjetivo
-x, --proxyURLO proxy: esquema, host, porta, credenciais opcionais
-U, --proxy-user usuário:passarCredenciais separadamente, úteis quando a senha possui caracteres especiais
--proxy-básicoForçar autenticação proxy básica (o padrão quando uma senha é fornecida)
-vMostrar 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#

meias5h
# 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.org

Variá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.

Concha
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 -x

Lendo uma falha#

Verboso
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 it

Um 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#

Bash
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 id

Perguntas 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.

Sua conta

Gerencie seus proxies em uma conta

Compare redes, faça pedidos e acompanhe seu saldo e solicitações de suporte em um painel. Nossa equipe analisa os pagamentos e fornece detalhes de conexão após a entrega.

Criar conta