- Panoramica
- Notazione delle variabili
- Passaggio 1: Verifica della connettività ICMP (ping)
- Passaggio 2: Verifica del percorso (tracert)
- Passaggio 3: Verifica della porta TCP (Test-NetConnection)
- Passaggio 4: Stato delle sessioni TCP (netstat / Get-NetTCPConnection)
- Passaggio 5: Verifica della risoluzione DNS (nslookup / Resolve-DnsName)
- Passaggio 6: Risoluzione avanzata dei problemi
- Conclusione
Panoramica
Questo articolo presenta un approccio sistematico per identificare le cause dei problemi di comunicazione in ambienti Windows Server, utilizzando comandi standard e strumenti PowerShell. Verranno trattati i test ICMP, le verifiche delle porte TCP, la risoluzione DNS e l’analisi dei log.
Notazione delle variabili
I valori dipendenti dall’ambiente vengono indicati come segue. Sostituirli in base alla propria configurazione.
| Variabile | Esempio | Descrizione |
|---|---|---|
<<TARGET_HOST>> |
192.168.10.1 |
Nome host o indirizzo IP di destinazione |
<<PORT_NUMBER>> |
443 |
Numero di porta TCP usato dall’applicazione |
<<LOG_PATH>> |
C:\Logs\netdiag.txt |
Percorso del file di log di output |
Passaggio 1: Verifica della connettività ICMP (ping)
Controlla la raggiungibilità a livello di rete.
ping <<TARGET_HOST>>
Se non si riceve risposta, verificare:
- Se Windows Defender Firewall blocca l’ICMP
- Se l’host di destinazione è attivo
- Se la tabella di routing (
route print) è corretta
Nota: Se l’ICMP è disabilitato, utilizzare un test TCP per verificare la connettività.
Passaggio 2: Verifica del percorso (tracert)
Determina in quale hop la comunicazione si interrompe.
tracert <<TARGET_HOST>>
Passaggio 3: Verifica della porta TCP (Test-NetConnection)
Controlla se la comunicazione a livello applicativo può essere stabilita.
Test-NetConnection -ComputerName <<TARGET_HOST>> -Port <<PORT_NUMBER>>
Principali campi di output:
| Campo | Descrizione |
|---|---|
TcpTestSucceeded |
Indica se la connessione TCP ha avuto successo |
PingSucceeded |
Mostra se l’ICMP è riuscito |
RemoteAddress |
Indirizzo IP di destinazione risolto |
SourceAddress |
Indirizzo IP di origine utilizzato |
Suggerimento: Se il DNS è instabile, utilizzare direttamente l’indirizzo IP.
Passaggio 4: Stato delle sessioni TCP (netstat / Get-NetTCPConnection)
Visualizza le connessioni TCP attive e le porte in ascolto.
Con netstat
netstat -ano | findstr "<<PORT_NUMBER>>"
Opzioni:
-a: mostra tutte le connessioni e le porte in ascolto-n: visualizza indirizzi e porte in formato numerico-o: mostra l’ID del processo
Identificare il processo corrispondente:
tasklist /FI "PID eq <<PID_NUMBER>>"
Con PowerShell
Get-NetTCPConnection -State Established |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess
Get-NetTCPConnection | Where-Object { $_.LocalPort -eq <<PORT_NUMBER>> }
Un numero elevato di connessioni in stato
SYN_SENToTIME_WAITpuò indicare interruzioni o connessioni eccessivamente frequenti.
Passaggio 5: Verifica della risoluzione DNS (nslookup / Resolve-DnsName)
Verifica se la risoluzione dei nomi funziona correttamente.
nslookup <<TARGET_HOST>>
Analisi dettagliata con PowerShell:
Resolve-DnsName <<TARGET_HOST>> -Type A
Interrogare un server DNS specifico:
Resolve-DnsName <<TARGET_HOST>> -Type A -Server 8.8.8.8
Nota: In ambienti IPv6 utilizzare
-Type AAAA.
Passaggio 6: Risoluzione avanzata dei problemi
Abilitare i log del Firewall
Se la comunicazione è bloccata, abilitare la registrazione del firewall per l’analisi.
Set-NetFirewallProfile -Profile Domain,Public,Private `
-LogAllowed True -LogBlocked True `
-LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" `
-LogMaxSizeKilobytes 32767
La dimensione predefinita del log è 1 MB; aumentarla facilita l’analisi.
Verifica della tabella ARP (problemi di livello 2)
arp -a
Indirizzi MAC duplicati o incoerenti possono indicare problemi di cache su switch o schede di rete virtuali.
Conclusione
La maggior parte dei problemi di rete può essere diagnosticata sistematicamente in cinque fasi:
ICMP → Percorso → TCP → DNS → Log
Utilizzando strumenti integrati come ping, tracert, netstat e i cmdlet PowerShell Get-NetTCPConnection, Resolve-DnsName e Test-NetConnection, è possibile eseguire una risoluzione dei problemi di rete efficiente, strutturata e ripetibile in Windows Server.
