Ce program folosește acest port?
Un server nu pornește pe portul 8080 sau un test se oprește cu "address already in use". Fie un program ține deja portul, fie Windows l-a rezervat, iar cele două erori seamănă. Iată cum le deosebești.
Două motive pentru care un port nu se deschide
| Ce s-a întâmplat | Cum se vede | Ce faci |
|---|---|---|
| Un program ține portul | Eroarea spune că adresa este deja în uz (EADDRINUSE sau eroarea Windows 10048). Programul apare în lista de socketuri. | Închide acel program sau alege alt port. |
| Windows a rezervat portul | Eroarea spune că accesul este interzis (eroarea Windows 10013), deși nimic nu ascultă. Niciun program nu apare în listă. | Alege un port din afara intervalului rezervat sau eliberează intervalul. Adesea ajunge repornirea serviciului WinNAT. |
Cu ce are Windows deja
Lista de socketuri dă proprietarul ca ID de proces. Caută portul, apoi ID-ul:
netstat -ano | findstr :8080
tasklist /fi "PID eq 4321"
Același lucru în PowerShell, pentru TCP și pentru UDP:
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress, OwningProcess
Get-Process -Id 4321
Dacă niciun program nu ține portul, întreabă ce intervale a rezervat Windows:
netsh int ipv4 show excludedportrange protocol=tcp
Rulează din nou cu protocol=udp. Intervalele se țin pe protocol, deci un port poate fi liber pentru UDP și rezervat pentru TCP.
Cu fila Tools
Fila Tools răspunde la aceleași întrebări fără consolă:
- Sockets listează fiecare socket TCP și UDP din calculator, ca
netstat -ano: ce ascultă, ce e conectat, în ce stare se află și ce program îl deține. Nu are nevoie de sesiune. Caută culport:8080saustate:listen. - Port check pune întrebarea pe care a pus-o serverul tău: poate un program să folosească acest port? Scrie 8080, o listă ca
80, 443sau un interval ca9000-9100(până la 1000 de porturi) și apasă Check. Fiecare port este încercat pentru TCP și UDP, în IPv4 și IPv6, și marcat Free, In use (cu programul și PID-ul lui) sau Reserved by Windows.
De aceea răspunsul este un tabel, nu un da sau un nu: Windows rezervă intervale pe protocol, iar un program care ascultă pe IPv6 poate ține un port liber pe IPv4.
Nu se trimite nimic prin rețea. Pentru fiecare port, instrumentul îl cere de la Windows pe adresa de loopback a calculatorului însuși și îl dă imediat înapoi.
După ce afli cine îl ține
Fă clic dreapta pe un rând din oricare tabel ca să țintești programul care ține portul. Asta doar completează câmpul țintă, iar nimic nu se schimbă până nu apeși START. Pasul următor este în țintirea unei singure aplicații.
Ce nu face
Citește, nu repară: nu închide niciodată un program și nu eliberează niciodată un interval rezervat. Un socket al altui cont nu arată niciun program, decât dacă instrumentul rulează ca administrator.