Risolvere problemi di connettività con Test-NetConnection

Prima dell’introduzione del cmdlet PowerShell Test-NetConnection, avevamo a disposizione molti strumenti diversi da riga di comando tra cui scegliere per risolvere vari problemi di connettività di rete.

Avevamo ping per testare gli echo e le risposte ICMP; tracert per vedere dove i nostri pacchetti potevano essere persi; nslookup per eseguire query DNS sui nostri server DNS; telnet per verificare le porte TCP aperte e vari altri strumenti. C’era un’utilità per tutto.

Con l’introduzione di PowerShell v4 su Windows 8.1 e Windows Server 2012 R2, questo approccio di un’utilità singola per un compito singolo per risolvere i problemi di connettività è diventato obsoleto.

Permettetemi di presentarvi il nuovo e potente cmdlet Test-NetConnection. Pensate al cmdlet PowerShell Test-NetConnection come a ping, tracert, nslookup, telnet e altre utilità combinate in un’unica suite di strumenti di risoluzione dei problemi.

Risoluzione dei problemi con Test-NetConnection

Vediamo cosa possiamo fare con il cmdlet PowerShell Test-NetConnection e come possiamo utilizzarlo quando ci troviamo nella sfortunata posizione di risolvere un problema di connettività di rete.

Per dimostrarlo, utilizzerò PowerShell Test-NetConnection per risolvere un problema comune del mondo reale: “Non riesco ad accedere al sito web XYZ!”

Quello che la maggior parte degli utenti non sa è che visualizzare con successo un sito web su un browser è di per sé un’impresa incredibile considerando il numero di elementi che devono funzionare insieme affinché ciò accada. Almeno, il processo richiede:

  • Avere una connessione a internet.
  • Avere un percorso verso il proprio server DNS.
  • Contattare il server DNS per risolvere l’URL.
  • Avere un percorso verso l’indirizzo IP a cui l’URL risolve.
  • Avere la porta TCP 80 aperta.
  • Eccetera, eccetera.

Confermare la propria connessione a internet

Per iniziare la risoluzione dei problemi, è necessario prima confermare di avere una connessione a internet. Puoi farlo semplicemente eseguendo PowerShell Test-NetConnection senza specificare alcun parametro. Tuttavia, se desideri ottenere ulteriori informazioni, ti suggerisco di utilizzare il parametro InformationLevel con l’argomento Detailed.

Test-NetConnection -InformationLevel Detailed

Questo semplice comando verifica la connettività locale e la connettività a internet, confermando che il tuo client DNS possa risolvere i nomi diretti al tuo server DNS, tutto in un unico colpo. Consideralo un controllo generale della salute della tua connessione di rete. Questo comando verifica tre dei cinque processi necessari per visualizzare un sito web in un solo colpo!

Utilizza Test-NetConnection per testare la tua connessione all’host del sito web.

Dovremo ora indirizzare la risoluzione dei problemi all’host del sito web in questione. Prendiamo google.com come esempio. Potresti anche utilizzare un computer remoto.

Possiamo utilizzare il comando Test-NetConnection con il parametro ComputerName per verificare contemporaneamente che l’host del sito web possa essere risolto nel DNS, che esista un percorso TCP disponibile per raggiungere l’indirizzo IP a cui il nome si risolve e che sia possibile effettuare il ping.

Test-NetConnection -ComputerName google.com

Anche se questo passaggio verifica tecnicamente che abbiamo un percorso verso il server web di google.com, voglio ottenere informazioni più dettagliate su quali router i miei pacchetti attraversano per raggiungere il server web di google.com. Per fare ciò, userò il parametro TraceRoute per ottenere un elenco.

Test-NetConnection -ComputerName google.com -TraceRoute

Verificare che la porta TCP sia aperta

Il nostro ultimo test consiste nel verificare che la porta TCP su cui ci aspettiamo che il server web sia in esecuzione sia aperta. In questo caso, poiché stiamo specificando semplicemente google.com, suppongo che sia la porta TCP 80. Per fare ciò, aggiungeremo semplicemente un altro parametro a Test-NetConnection. Poiché Test-NetConnection comprende la porta TCP standard per alcuni servizi diversi, non è nemmeno necessario conoscere il numero di porta. Posso semplicemente passare HTTP al parametro CommonTCPPort e lui farà il lavoro per me.

Test-NetConnection -ComputerName google.com -CommonTCPPort HTTP

Tuttavia, se il sito web potrebbe essere in esecuzione su una porta diversa, ad esempio 8080, è possibile specificare direttamente una porta TCP utilizzando il parametro Port.

Test-NetConnection -ComputerName google.com -Port 80

Abbiamo ora testato ciascuno dei requisiti di connettività delineati all’inizio di questo articolo. Se non riusciamo ancora a visualizzare il sito web in questo momento, abbiamo confermato che il problema non risiede nel nostro client e possiamo passare il problema a Google o forse a un server DNS downstream.

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