localhost:3000: Was es ist und wie du abgelehnt oder belegt behebst | We.Inc
Was localhost:3000 bedeutet, welche Dev-Server standardmäßig Port 3000 nutzen und welche Befehle unter Mac, Linux und Windows die Fehler Verbindung abgelehnt und Adresse bereits belegt beheben.
localhost:3000 ist ein Webserver, der auf deinem eigenen Rechner läuft und auf Port 3000 lauscht. Next.js, das Hello-World-Beispiel von Express und Rails nutzen standardmäßig diesen Port. Verweigert die Seite die Verbindung, lauscht dort nichts. Startet der Server nicht, belegt bereits ein anderer Prozess den Port, und du kannst ihn finden und beenden.
Welchen Fehler hast du?
Was du siehst
Bedeutung
Was du zuerst probierst
Browser: localhost hat die Verbindung abgelehnt
Auf Port 3000 lauscht nichts
Den Dev-Server starten und die ausgegebene URL lesen
Terminal: EADDRINUSE :::3000
Ein anderer Prozess nutzt Port 3000 bereits
Diesen Prozess finden und beenden oder einen anderen Port nutzen
Seite lädt, aber eine alte App erscheint
Der Server eines anderen Projekts läuft noch
Ihn beenden und dann den richtigen neu starten
localhost bedeutet immer dieser Rechner, und die Zahl nach dem Doppelpunkt wählt aus, mit welchem Programm darauf du sprichst. Die meisten Probleme mit Port 3000 haben eine von zwei gegensätzlichen Ursachen: Dort läuft kein Server, oder zwei Server wollen ihn gleichzeitig. Gib unten einen Port ein, um die Befehle für dein System zu erhalten.
Gib die Portnummer ein, die deine App nutzt. Standard ist 3000.
Kopiere den Suchbefehl für dein System und führe ihn in einem Terminal aus, um zu sehen, welcher Prozess lauscht.
Beende diesen Prozess mit dem zweiten Befehl oder starte deine App auf einem anderen Port.
Lauscht dort überhaupt nichts, prüfe in der Tabelle der Standardports, ob dein Tool wirklich 3000 nutzt.
Lies die URL, die der Dev-Server beim Start ausgibt. Vite nutzt zum Beispiel 5173 und weicht auf den nächsten freien Port aus, wenn dieser belegt ist.
Beende Dev-Server mit Ctrl+C in ihrem Terminal, statt das Fenster zu schließen, sonst kann der Prozess weiterlaufen.
Nutze http, nicht https, außer du hast den Server bewusst mit HTTPS gestartet; Next.js liefert HTTPS lokal nur mit --experimental-https aus.
In Docker muss die App auf 0.0.0.0 lauschen und der Port veröffentlicht sein, sonst lehnt localhost auf dem Host-Rechner die Verbindung ab.
Häufige Fragen
Was ist localhost:3000?
localhost ist der Name für deinen eigenen Rechner, meist 127.0.0.1 oder ::1, und 3000 ist eine Portnummer. Zusammen adressieren sie einen lokal laufenden Server, meistens einen Entwicklungsserver für eine Web-App. Niemand sonst im Internet kann deine localhost-URL öffnen.
Warum meldet localhost:3000, dass die Verbindung abgelehnt wurde?
Kein Programm nimmt auf diesem Port Verbindungen an. Der Dev-Server läuft vielleicht nicht, ist mit einem Fehler abgestürzt oder lauscht auf einem anderen Port wie 5173. Sieh im Terminal nach, in dem du ihn gestartet hast.
Wie behebe ich, dass Port 3000 bereits belegt ist?
Finde den Prozess, der den Port hält, mit lsof auf Mac oder Linux oder mit netstat -ano unter Windows, und beende ihn dann mit kill oder taskkill. Oder starte deine App auf einem anderen Port, zum Beispiel next dev -p 3001.
Wie ändere ich den Port in Next.js?
Übergib -p, etwa next dev -p 4000, oder setze die Umgebungsvariable PORT beim Ausführen des Befehls. Laut Next.js-Dokumentation lässt sich PORT nicht in einer .env-Datei setzen, weil der Server startet, bevor diese Datei gelesen wird.
Kann jemand anderes mein localhost:3000 öffnen?
Nicht über diese Adresse, denn localhost bedeutet auf dem Rechner der anderen Person deren eigenen Computer. Um es in deinem Netzwerk zu teilen, muss der Server auf allen Schnittstellen lauschen, und andere nutzen die lokale IP-Adresse deines Rechners samt Port.
Ports in einem Absatz
Ein Rechner kann viele Server gleichzeitig betreiben, daher lauscht jeder auf einem nummerierten Port. Nur ein Programm kann zur selben Zeit auf einem bestimmten Port und einer Adresse lauschen, deshalb schlägt der Start eines zweiten Servers auf 3000 mit EADDRINUSE fehl.
Port 3000 hat keine offizielle Bedeutung. Er wurde zur Gewohnheit, weil beliebte Tools ihn als Standard gewählt haben, und ist deshalb auch der Port, der am ehesten von einem vergessenen Server belegt ist.
Verbindung abgelehnt, Schritt für Schritt
Prüfe zuerst, ob ein Server läuft: Sein Terminal sollte eine Bereit-Meldung und eine URL zeigen. Wurde er mit einem Fehler beendet, behebe zuerst diesen Fehler, denn der Browser kann sich nicht mit einem Server verbinden, der nicht da ist.
Vergleiche dann die Ports. Steht im Terminal 5173 oder 4321 und du hast 3000 eingetippt, klopft der Browser an eine leere Tür. Probiere zuletzt 127.0.0.1:3000 statt localhost:3000, das schließt eine Namensauflösung auf die IPv6-Adresse aus, wenn der Server nur auf IPv4 lauscht.
Standardports von Dev-Servern
Standardwerte laut Dokumentation des jeweiligen Tools, Oktober 2026
Tool
Befehl
Standard-URL
next dev / next start
Hello-World-Beispiel von Express
Ruby on Rails
bin/rails server
Vite
Vite Preview
vite preview
Astro
astro dev
Einen belegten Port im eigenen Server behandeln
Den Port aus PORT lesen und EADDRINUSE klar melden
Ein kleiner Express-Server, der auf 3000 zurückfällt und eine verständliche Meldung ausgibt, wenn der Port belegt ist.
macOS und Linux
Den Prozess auflisten, der auf dem Port lauscht, und ihn dann über seine PID (zweite Spalte) beenden.
Windows (Eingabeaufforderung)
Verbindungen mit ihren Prozess-IDs anzeigen, nach dem Port filtern und dann diese PID beenden.
Stattdessen auf einem anderen Port starten
Den anderen Prozess in Ruhe lassen und deine App auf einem freien Port starten.
Einen Port freigeben
Port
Ports reichen von 1 bis 65535. Es werden Befehle für 3000 angezeigt.