Quale programma sta usando questa porta?
Un server non parte sulla porta 8080, oppure un test si ferma con "address already in use". O un programma ha già la porta, oppure Windows l'ha messa da parte, e i due errori si somigliano. Ecco come distinguerli.
Due motivi per cui una porta non si apre
| Cosa è successo | Come si presenta | Cosa fare |
|---|---|---|
| Un programma ha la porta | L'errore dice che l'indirizzo è già in uso (EADDRINUSE, o errore Windows 10048). Il programma compare nell'elenco dei socket. | Chiudi quel programma o scegli un'altra porta. |
| Windows ha riservato la porta | L'errore dice che l'accesso è vietato (errore Windows 10013) anche se nulla è in ascolto. Nessun programma compare nell'elenco. | Scegli una porta fuori dall'intervallo riservato oppure libera l'intervallo. Spesso basta riavviare il servizio WinNAT. |
Con ciò che Windows ha già
L'elenco dei socket indica il proprietario come ID di processo. Cerca la porta e poi l'ID:
netstat -ano | findstr :8080
tasklist /fi "PID eq 4321"
La stessa cosa in PowerShell, per TCP e per UDP:
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress, OwningProcess
Get-Process -Id 4321
Se nessun programma tiene la porta, chiedi quali intervalli Windows ha riservato:
netsh int ipv4 show excludedportrange protocol=tcp
Esegui di nuovo con protocol=udp. Gli intervalli sono tenuti per protocollo, quindi una porta può essere libera per UDP e riservata per TCP.
Con la scheda Tools
La scheda Tools risponde alle stesse domande senza console:
- Sockets elenca ogni socket TCP e UDP del computer, come
netstat -ano: cosa è in ascolto, cosa è connesso, lo stato e il programma proprietario. Non serve una sessione. Cerca conlport:8080ostate:listen. - Port check pone la domanda del tuo server: un programma può usare questa porta? Scrivi 8080, un elenco come
80, 443o un intervallo come9000-9100(fino a 1000 porte) e premi Check. Ogni porta viene provata per TCP e UDP, in IPv4 e IPv6, e segnata come Free, In use (con il programma e il suo PID) o Reserved by Windows.
Per questo la risposta è una tabella e non un sì o un no: Windows riserva intervalli per protocollo, e un programma in ascolto su IPv6 può tenere una porta libera su IPv4.
Non viene inviato nulla sulla rete. Per ogni porta lo strumento la chiede a Windows sull'indirizzo di loopback del computer e la restituisce subito.
Quando sai chi ce l'ha
Fai clic con il tasto destro su una riga di una delle due tabelle per prendere di mira il programma che tiene la porta. Questo compila soltanto il campo del bersaglio, e non cambia nulla finché non premi START. Il passo successivo è in puntare a una app.
Cosa non fa
Legge, non ripara: non chiude mai un programma e non libera mai un intervallo riservato. Un socket di un altro account non mostra alcun programma, a meno che lo strumento non giri come amministratore.