EADDRINUSE beheben: address already in use (Node.js auf dem Mac)
Du startest deinen Node-Dev-Server und bekommst diesen Fehler. Er heißt: Ein anderer Prozess lauscht schon auf diesem Port.
Error: listen EADDRINUSE: address already in use :::3000Was das bedeutet
Auf einem Port kann immer nur ein Programm lauschen. EADDRINUSE ist der Fehlercode für Adresse belegt, und :::3000 ist Port 3000 auf allen Adressen. Meistens ist ein früherer Lauf deines eigenen Servers schuld, den du vergessen hast.
Lösung 1: den alten Prozess beenden
lsof -nP -iTCP:3000 -sTCP:LISTEN
kill $(lsof -ti tcp:3000 -sTCP:LISTEN)Die erste Zeile zeigt, was den Port belegt, die zweite beendet es. Starte danach deinen Server neu.
Lösung 2: einen anderen Port nehmen
PORT=3001 npm run dev
npx next dev -p 3001
npx vite --port 3001PORT wirkt nur, wenn dein Projekt es liest. Next.js liest es, Vite hat dafür eine eigene Option.
Häufige Ursachen auf dem Mac
- Ein Dev-Server, den du früher gestartet und vergessen hast: ein anderer Terminal-Tab, ein Hintergrundjob oder eine Editor-Aufgabe.
- Ein abgestürzter Lauf, der einen Kindprozess zurückgelassen hat. Der Elternprozess ist weg, das Kind hält den Port.
- Ein Docker-Container, der den Port veröffentlicht. Prüf mit
docker ps --filter publish=3000. - AirPlay-Empfänger. Auf neueren macOS-Versionen lauscht er auf Port 5000 und 7000. Nennt dein Fehler 5000 oder 7000, schalte ihn in den Systemeinstellungen unter Allgemein, AirDrop & Handoff, AirPlay-Empfänger aus.
Prüfen, ob der Port frei ist
lsof -nP -iTCP:3000 -sTCP:LISTENKeine Ausgabe heißt: Nichts lauscht, dein Server kann starten.
Wenn es immer wieder passiert
Rungeist zeigt dir, was auf einem Port läuft, bevor der Fehler kommt. Wollen zwei Projekte denselben Port, markiert es den Konflikt rot, und ein Klick beendet den, den du nicht willst.