Para destinos HTTP, defina http_proxy em letras minúsculas. O curl ignora intencionalmente HTTP_PROXY em maiúsculas. Em um shell POSIX:

http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/

Essas atribuições valem apenas para o comando que vem logo depois. Substitua o endereço de escuta do exemplo pelo seu proxy; para comparar endpoints públicos, escolha um candidato na lista de proxies HTTP. A variável https_proxy seleciona uma rota para destinos HTTPS; um valor com http:// continua indicando um proxy HTTP comum capaz de criar um túnel até o destino. O PowerShell e os shells de comando do Windows usam outra sintaxe de atribuição.

Por que essa forma em maiúsculas é perigosa

Ambientes CGI podem transformar cabeçalhos de requisições recebidas em variáveis HTTP_ em maiúsculas. Assim, um cabeçalho chamado Proxy pode se tornar HTTP_PROXY. Confiar nele como configuração de saída permitiria que os dados de uma requisição escolhessem o proxy. A exigência de minúsculas do curl evita esse mapeamento; a exceção não se aplica de forma idêntica a HTTPS e às variáveis de outros protocolos.

Se mudar a variável não mudar a rota

Procure primeiro uma variável específica do protocolo e depois a alternativa ALL_PROXY. Uma regra correspondente de NO_PROXY pode fazer a conexão ignorar o proxy. As variantes em minúsculas e as definições concorrentes também importam. Este laço para um shell do tipo Unix informa a presença sem exibir valores que possam conter credenciais:

for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
  if printenv "$name" >/dev/null; then
    printf '%s is set\n' "$name"
  fi
done

Inspecione localmente as definições listadas. Se alguma reaparecer, verifique a configuração do shell que inicia o processo, do serviço, da IDE, do contêiner ou do CI. A presença identifica possíveis entradas; não informa qual valor prevaleceu.

Para isolar uma requisição dessas escolhas de proxy, forneça tanto o endpoint quanto uma lista de exceções vazia:

curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Para uma comparação direta permitida:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Esses comandos ajudam a separar uma rota herdada de uma falha de conectividade. Leia os resultados do teste de proxy etapa por etapa antes de alterar mais configurações de ambiente. Aplique as regras de variáveis do curl ao curl; o ambiente de execução de uma aplicação pode descobrir e combinar proxies de outra forma.

Artigos relacionados