Resolver Problemas de Conectividade com Test-NetConnection

Antes dos dias do cmdlet Test-NetConnection do PowerShell, tínhamos muitas ferramentas de linha de comando diferentes das quais podíamos escolher para solucionar vários problemas de conectividade de rede.

Tínhamos ping para testar eco e respostas ICMP; tracert para ver onde nossos pacotes poderiam estar sendo descartados; nslookup para realizar consultas DNS contra nossos servidores DNS; telnet para verificar portas TCP abertas, e vários outros utilitários. Havia uma utilidade para tudo.

Com a introdução do PowerShell v4 no Windows 8.1 e no Windows Server 2012 R2, essa abordagem de uma única utilidade para uma única tarefa para solucionar problemas de conectividade tornou-se obsoleta.

Permita-me apresentar-lhe o novo e poderoso cmdlet Test-NetConnection. Pense no Test-NetConnection do PowerShell como ping, tracert, nslookup, telnet e alguns outros utilitários envoltos em uma única suíte de bondade de solução de problemas.

Solucionando problemas com Test-NetConnection

Vamos ver o que podemos fazer com o cmdlet test-netconnection do Powershell e como podemos usá-lo quando estamos na infeliz posição de solucionar um problema de conectividade de rede.

Para demonstrar isso, vou usar o PowerShell Test-NetConnection para solucionar um problema comum do mundo real: “Não consigo acessar o site XYZ!”

O que a maioria dos usuários não sabe é que conseguir renderizar um site em um navegador é, por si só, uma proeza incrível, considerando o número de peças em movimento que precisam funcionar juntas para que isso aconteça. No mínimo, o processo envolve:

  • Ter uma conexão com a internet.
  • Ter uma rota para o seu servidor DNS.
  • Entrar em contato com o servidor DNS para resolver a URL.
  • Ter uma rota para o endereço IP ao qual a URL é resolvida.
  • Ter a porta TCP 80 aberta.
  • e assim por diante.

Confirme Sua Conexão com a Internet

Para começar a solucionar problemas, você primeiro precisa confirmar se tem uma conexão com a internet. Você pode fazer isso simplesmente executando o PowerShell Test-NetConnection sem nenhum parâmetro. No entanto, se você quiser obter mais informações, sugiro usar o parâmetro InformationLevel com o argumento Detailed.

Test-NetConnection -InformationLevel Detailed

Este comando simples verifica sua conectividade local e com a internet e confirma que seu cliente DNS pode resolver nomes direcionados ao seu servidor DNS, tudo de uma vez. Considere-o como uma verificação geral de saúde para sua conexão de rede. Este comando verifica três dos cinco processos necessários para renderizar um site de uma só vez!

Use Test-NetConnection para Testar Sua Conexão com o Host do Site

Vamos agora direcionar nossa solução de problemas para o host do site em questão. Vamos usar o google.com como exemplo. Você também pode usar um computador remoto.

Podemos usar o Test-NetConnection com o parâmetro ComputerName para garantir simultaneamente que o host do site possa ser resolvido no DNS, que existe uma rota TCP disponível para chegar ao endereço IP para o qual o nome se resolve e que é possível fazer ping nele.

Test-NetConnection -ComputerName google.com

Mesmo que este passo tecnicamente verifique se temos uma rota para o servidor web do google.com, quero encontrar informações mais detalhadas sobre quais roteadores meus pacotes estão atravessando para chegar ao servidor web do google.com. Para fazer isso, vou usar o parâmetro TraceRoute para obter uma lista.

Test-NetConnection -ComputerName google.com -TraceRoute

Garanta que sua porta TCP esteja aberta

Nosso teste final é garantir que a porta TCP na qual esperamos que o servidor web esteja em execução esteja aberta. Neste caso, como estamos apenas especificando o google.com, vou assumir que é a porta TCP 80. Para fazer isso, vamos simplesmente adicionar outro parâmetro ao Test-NetConnection. Como o Test-NetConnection entende a porta TCP padrão para alguns serviços diferentes, nem precisamos saber o número da porta. Posso simplesmente passar HTTP para o parâmetro CommonTCPPort e ele fará o trabalho por mim.

Test-NetConnection -ComputerName google.com -CommonTCPPort HTTP

No entanto, se o site estiver sendo executado em uma porta diferente, como 8080, você pode especificar uma porta TCP diretamente usando o parâmetro Port.

Test-NetConnection -ComputerName google.com -Port 80

Testamos agora cada um dos requisitos de conectividade delineados no início deste artigo. Se ainda não conseguirmos renderizar o site neste momento, confirmamos que o problema não está com nosso cliente, e podemos encaminhar o problema para o Google ou talvez para um servidor DNS secundário.

Source:
https://adamtheautomator.com/test-netconnection/