Substitua 127.0.0.1:8080 por um endpoint do seu serviço ou da lista de proxies HTTP e execute o comando contra um destino HTTPS inofensivo:

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

O endereço de loopback indica um listener na sua própria máquina. O comando o seleciona explicitamente, limpa a lista de exceções do curl para essa chamada e permite cinco segundos para estabelecer a conexão e quinze segundos no total. Ele não altera as configurações de proxy do navegador nem do sistema.

Use o executável real do curl se o seu shell definir curl como alias de outro programa; curl --version identifica a compilação. Se o próprio listener exigir TLS, use o esquema de URL de proxy informado na documentação dele.

Leia quatro resultados, não apenas um sinal de sucesso

  1. Conectado ao proxy escolhido: o endereço e a porta estão acessíveis.
  2. CONNECT aceito: o proxy abriu um túnel para o destino HTTPS.
  3. Certificado do destino verificado: o TLS foi concluído com as verificações de confiança esperadas.
  4. Resposta do destino recebida: confira o status e o conteúdo para saber se o resultado atende ao que a aplicação precisa.

Um túnel funcionando pode ser seguido por um 403 ou 429 do destino. O curl também pode encerrar com sucesso depois de receber uma resposta de erro HTTP; por isso, registre tanto o status da resposta quanto o resultado de erro do curl. Uma conexão TCP ou um CONNECT bem-sucedido, isoladamente, não basta.

Um resultado compacto para comparar testes repetidos

Em um shell de sistemas do tipo Unix, descarte o corpo e imprima o status do túnel, o status do destino, a outra ponta da conexão e o tempo decorrido:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect descreve a resposta do túnel; http_code descreve a resposta HTTP final. remote_ip é a outra ponta da conexão do curl, não uma medição independente do endereço de saída do proxy. Em outros sistemas, substitua /dev/null ou mantenha o corpo da resposta.

Se o teste falhar, localize a etapa de conexão ou transferência que falhou e compare o mesmo destino por acesso direto, onde essa rota for permitida:

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

--noproxy '*' ignora os proxies. Falhas de verificação de certificado nas duas rotas apontam para um problema de confiança em comum; um acesso direto bem-sucedido com CONNECT rejeitado aponta para autenticação ou política do proxy. Revise a saída detalhada antes de compartilhá-la, pois ela pode conter informações de identificação.

Salve o endpoint, o destino e o horário junto com o resultado. Isso registra o que funcionou naquela requisição; disponibilidade futura, privacidade e desempenho sob carga exigem evidências próprias.

Artigos relacionados