Entwickler
Port auf dem Mac bereits belegt
Auf einem TCP-Port und einer Adresse kann nur ein Prozess lauschen. Ein zweiter Server bricht dann mit „address already in use“ ab.
Symptome
- Ein Dev-Server bricht mit „EADDRINUSE“ oder „address already in use“ ab.
- Docker kann einen Port nicht veröffentlichen, weil „port is already allocated“.
- Der Port war vor einem Absturz oder einem Neustart deines Editors frei.
Mögliche Ursachen
- Eine alte Instanz deines Servers. Ein Server aus einem früheren Lauf läuft noch im Hintergrund.
- Eine andere App. Eine andere App nutzt denselben Port. Ab macOS 12 nutzt der AirPlay-Empfänger die Ports 5000 und 7000.
- Ein Container. Ein laufender Container veröffentlicht denselben Port auf dem Mac.
So prüfst du es
Finde den Prozess, der auf dem Port lauscht. Ersetze 3000 durch deinen Port.
lsof -nP -iTCP:3000 -sTCP:LISTENAusgabe Die Spalten COMMAND und PID nennen den Prozess.
Um Prozesse anderer Benutzer zu sehen, führe denselben Befehl mit sudo aus.
sudo lsof -nP -iTCP:3000 -sTCP:LISTENErfordert ein Administratorpasswort.
Zeige mehr über den Prozess an.
ps -p 12345 -o pid,commandSuche nach Containern, die den Port veröffentlichen.
docker ps
So behebst du es
Wenn der Prozess dir gehört, beende ihn in seinem eigenen Terminalfenster mit Control-C.
Andernfalls sende ihm das Signal zum Beenden. Verwende seine PID.
kill 12345Wenn er sich nicht beendet, verwende
kill -9. Der Prozess kann dann seine Daten nicht sichern.Gehört der Prozess zu macOS, beende ihn nicht. Wähle einen anderen Port für deinen Server.
Wenn es Port 5000 oder 7000 ist, lies Port 5000 oder 7000 auf dem Mac belegt: AirPlay-Empfänger.
Mit Kilobat
Liste die offenen Sockets eines Prozesses auf.
kilobat destinations --pid 12345Beende einen Prozess über seine PID. Füge
--forcenur hinzu, wenn er sich nicht beendet.kilobat quit 12345
Fragen
Warum zeigt lsof nichts an, obwohl der Port belegt ist?
lsof zeigt nur die Prozesse, die du untersuchen darfst. Führe es mit sudo aus, um alle Prozesse zu sehen.
Was bewirken -n und -P?
Sie verhindern, dass lsof Adressen in Namen und Ports in Dienstnamen umwandelt. Die Ausgabe kommt schneller und zeigt Zahlen.
Quellen
- lsof(8), Manpage aus macOS 27.2
- kill(1) und ps(1), Manpage, installiert mit macOS 27.2
- Apple Support: Von Apple-Softwareprodukten verwendete TCP- und UDP-Ports
Quellen geprüft am 29. Oktober 2026. Die Manpages sind die mit macOS installierten; öffne eine mit man <name> im Terminal.