Welches Programm nutzt diesen Port?
Ein Server startet nicht auf Port 8080, oder ein Test bricht mit "address already in use" ab. Entweder belegt schon ein Programm den Port, oder Windows hat ihn reserviert, und beide Fehler sehen sich ähnlich. So unterscheidest du sie.
Zwei Gründe, warum sich ein Port nicht öffnen lässt
| Was passiert ist | Woran man es erkennt | Was zu tun ist |
|---|---|---|
| Ein Programm belegt den Port | Der Fehler sagt, die Adresse sei schon in Gebrauch (EADDRINUSE oder Windows-Fehler 10048). Das Programm steht in der Socket-Liste. | Schließe das Programm oder wähle einen anderen Port. |
| Windows hat den Port reserviert | Der Fehler sagt, der Zugriff sei verboten (Windows-Fehler 10013), obwohl nichts lauscht. In der Liste steht kein Programm. | Wähle einen Port außerhalb des reservierten Bereichs oder gib den Bereich frei. Oft hilft ein Neustart des WinNAT-Dienstes. |
Mit dem, was Windows schon mitbringt
Die Socket-Liste nennt den Besitzer als Prozess-ID. Suche den Port und dann die ID:
netstat -ano | findstr :8080
tasklist /fi "PID eq 4321"
Dasselbe in PowerShell, für TCP und für UDP:
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress, OwningProcess
Get-Process -Id 4321
Hält kein Programm den Port, frage ab, welche Bereiche Windows reserviert hat:
netsh int ipv4 show excludedportrange protocol=tcp
Führe den Befehl noch einmal mit protocol=udp aus. Die Bereiche werden je Protokoll geführt, ein Port kann also für UDP frei und für TCP reserviert sein.
Mit dem Tab Tools
Der Tab Tools beantwortet dieselben Fragen ohne Konsole:
- Sockets listet jeden TCP- und UDP-Socket des Computers auf, wie
netstat -ano: was lauscht, was verbunden ist, in welchem Zustand und welchem Programm er gehört. Eine Sitzung ist dafür nicht nötig. Gesucht wird mitlport:8080oderstate:listen. - Port check fragt, was dein Server gefragt hat: Kann ein Programm diesen Port nutzen? Gib 8080 ein, eine Liste wie
80, 443oder einen Bereich wie9000-9100(bis zu 1000 Ports) und drücke Check. Jeder Port wird für TCP und UDP sowie für IPv4 und IPv6 geprüft und als Free, In use (mit Programm und PID) oder Reserved by Windows markiert.
Deshalb ist die Antwort eine Tabelle und kein Ja oder Nein: Windows reserviert Bereiche je Protokoll, und ein Programm, das auf IPv6 lauscht, kann einen Port halten, der unter IPv4 frei ist.
Es wird nichts über das Netzwerk gesendet. Für jeden Port fragt das Werkzeug Windows auf der eigenen Loopback-Adresse des Computers danach und gibt ihn sofort zurück.
Wenn du weißt, wer ihn hat
Klicke in einer der beiden Tabellen mit der rechten Maustaste auf eine Zeile, um das Programm als Ziel zu setzen, das den Port hält. Das füllt nur das Zielfeld aus, und es ändert sich nichts, bis du START drückst. Wie es weitergeht, steht unter eine App anvisieren.
Was es nicht tut
Es liest nur und repariert nichts: Es schließt nie ein Programm und gibt nie einen reservierten Bereich frei. Ein Socket eines anderen Kontos zeigt kein Programm, außer das Werkzeug läuft als Administrator.