Alguns testes precisam ir além da porta e usar o próprio protocolo do serviço, como o HTTP de uma integração ou o SSH de uma transferência de arquivos. O curl e o sftp fazem esses testes pela linha de comando, e as versões recentes do Windows já trazem os dois comandos.
O curl
O curl faz requisições HTTP e HTTPS. No Windows PowerShell, o comando precisa ser chamado como curl.exe, porque a palavra curl sozinha é um apelido de outro comando.
curl -4 ifconfig.me: mostra o endereço público de saída, no IPv4;curl -v https://api.example.com: mostra cada etapa da requisição, da tradução do nome até a resposta.
Com a opção -v, a saída mostra as etapas na ordem em que acontecem:
- A tradução do nome do serviço em endereço IP.
- A abertura da conexão TCP com a porta do serviço.
- A negociação de segurança, chamada TLS, em que o certificado do servidor é verificado.
- A requisição HTTP e a resposta do serviço.
A etapa em que a saída para indica onde está a falha. A resposta HTTP, quando chega, traz um código de status, como 200, de sucesso, 401, de falta de autenticação, ou 500, de erro no servidor. A opção -k ignora a verificação do certificado e serve apenas para confirmar, em um teste, que o problema está no certificado.
O sftp
O sftp testa a transferência de arquivos sobre o protocolo SSH. Esse teste vai além do teste de porta, porque valida também o usuário.
sftp usuario@servidor: conecta na porta padrão do SSH, a 22;sftp -P 2022 usuario@servidor: conecta em uma porta diferente, no exemplo a 2022.
Na primeira conexão com um servidor, o sftp pede a confirmação da chave de identificação desse servidor. A leitura das respostas seguintes é direta:
- quando o sftp pede a senha, a conexão e o protocolo funcionaram;
- quando a senha é recusada, o problema está na credencial;
- quando nem a conexão abre, o diagnóstico volta para o teste de porta.
No suporte
As integrações por API e por envio de arquivos falham em etapas diferentes. Esses comandos mostram se a falha está no nome, na conexão, na segurança ou na credencial.
Para guardar
- O comando
curl -4 ifconfig.memostra o endereço público de saída. - O comando
curl -vmostra em qual etapa a requisição parou. - O código de status HTTP resume a resposta do serviço.
- O sftp testa a porta, o protocolo e o usuário de uma vez.
O sftp na porta 2022 pede a senha, mas a recusa. O problema é de rede?
Não. Se a senha foi pedida, a conexão e o protocolo funcionaram. O problema está na credencial.
O curl -v para https://api.example.com mostra que o nome foi traduzido e que a conexão abriu, mas para na negociação de segurança, com um erro de certificado. Onde está o problema?
Na verificação do certificado. As causas comuns são a data e a hora erradas no computador, um certificado vencido no servidor ou um programa de segurança que interfere na conexão. A rede, até a porta do serviço, está funcionando.