localhost:3000: co to jest i jak naprawić odmowę połączenia lub zajęty port | We.Inc
Co oznacza localhost:3000, które serwery deweloperskie domyślnie używają portu 3000 oraz komendy dla Mac, Linux i Windows, które naprawiają błędy odmowy połączenia i zajętego adresu.
localhost:3000 to serwer WWW działający na Twoim własnym komputerze i nasłuchujący na porcie 3000. Next.js, przykład hello world z Express i Rails domyślnie używają tego portu. Jeśli strona odmawia połączenia, nic tam nie nasłuchuje. Jeśli serwer nie chce wystartować, port zajmuje już inny proces, a Ty możesz go znaleźć i zatrzymać.
Jaki masz błąd?
Co widzisz
Co to oznacza
Co sprawdzić najpierw
Przeglądarka: localhost odmówił połączenia
Nic nie nasłuchuje na porcie 3000
Uruchom serwer deweloperski i przeczytaj adres URL, który wyświetla
Terminal: EADDRINUSE :::3000
Port 3000 jest już używany przez inny proces
Znajdź ten proces i zatrzymaj go albo użyj innego portu
Strona się ładuje, ale pojawia się stara aplikacja
Nadal działa serwer innego projektu
Zatrzymaj go, a potem uruchom ponownie właściwy
localhost zawsze oznacza ten komputer, a liczba po dwukropku wybiera program, z którym się łączysz. Większość problemów z portem 3000 wynika z jednego z dwóch przeciwnych problemów: nie działa tam żaden serwer albo dwa serwery chcą go jednocześnie. Wpisz port poniżej, aby dostać komendy dla swojego systemu.
Wpisz numer portu, którego używa Twoja aplikacja. Domyślnie to 3000.
Skopiuj komendę wyszukiwania dla swojego systemu i uruchom ją w terminalu, aby zobaczyć, który proces nasłuchuje.
Zatrzymaj ten proces drugą komendą albo uruchom aplikację na innym porcie.
Jeśli nic nie nasłuchuje, sprawdź tabelę domyślnych portów, aby upewnić się, że Twoje narzędzie naprawdę używa 3000.
Przeczytaj adres URL, który serwer deweloperski wyświetla przy starcie. Vite na przykład używa 5173 i przechodzi na kolejny wolny port, jeśli ten jest zajęty.
Zatrzymuj serwery deweloperskie przez Ctrl+C w ich terminalu zamiast zamykać okno, co może zostawić działający proces.
Używaj http, a nie https, chyba że celowo uruchomiłeś serwer z HTTPS; Next.js serwuje lokalnie HTTPS tylko z --experimental-https.
W Dockerze aplikacja musi nasłuchiwać na 0.0.0.0, a port musi być opublikowany, inaczej localhost na maszynie hosta odmówi połączenia.
Najczęściej zadawane pytania
Czym jest localhost:3000?
localhost to nazwa Twojego własnego komputera, zwykle 127.0.0.1 lub ::1, a 3000 to numer portu. Razem wskazują serwer działający lokalnie, najczęściej serwer deweloperski aplikacji webowej. Nikt inny w internecie nie może otworzyć Twojego adresu localhost.
Dlaczego localhost:3000 pokazuje odmowę połączenia?
Żaden program nie przyjmuje połączeń na tym porcie. Serwer deweloperski może nie działać, mógł paść z błędem albo nasłuchuje na innym porcie, na przykład 5173. Sprawdź terminal, w którym go uruchomiłeś.
Jak naprawić błąd zajętego portu 3000?
Znajdź proces trzymający port przez lsof na Mac lub Linux albo netstat -ano na Windows, a potem zatrzymaj go przez kill lub taskkill. Możesz też uruchomić aplikację na innym porcie, na przykład next dev -p 3001.
Jak zmienić port w Next.js?
Podaj -p, jak w next dev -p 4000, albo ustaw zmienną środowiskową PORT przy uruchamianiu komendy. Dokumentacja Next.js zaznacza, że PORT nie może być ustawiony w pliku .env, bo serwer startuje, zanim ten plik zostanie odczytany.
Czy ktoś inny może otworzyć mój localhost:3000?
Nie przez ten adres, bo localhost na jego maszynie oznacza jego własny komputer. Aby udostępnić go w swojej sieci, serwer musi nasłuchiwać na wszystkich interfejsach, a inni używają lokalnego adresu IP Twojej maszyny i portu.
Porty w jednym akapicie
Komputer może uruchamiać wiele serwerów naraz, więc każdy nasłuchuje na ponumerowanym porcie. Na danym porcie i adresie może jednocześnie nasłuchiwać tylko jeden program, dlatego uruchomienie drugiego serwera na 3000 kończy się błędem EADDRINUSE.
Port 3000 nie ma oficjalnego znaczenia. Stał się nawykiem, bo popularne narzędzia wybrały go jako domyślny, więc jest też portem, który najczęściej zajmuje zapomniany serwer.
Odmowa połączenia krok po kroku
Najpierw potwierdź, że serwer działa: jego terminal powinien pokazać komunikat o gotowości i adres URL. Jeśli zakończył się błędem, najpierw napraw ten błąd, bo przeglądarka nie połączy się z serwerem, którego nie ma.
Następnie porównaj porty. Jeśli terminal mówi 5173 lub 4321, a Ty wpisałeś 3000, przeglądarka puka do pustych drzwi. Na koniec spróbuj 127.0.0.1:3000 zamiast localhost:3000, co wyklucza rozwiązanie nazwy na adres IPv6, gdy serwer nasłuchuje tylko na IPv4.
Domyślne porty serwerów deweloperskich
Wartości domyślne z dokumentacji każdego narzędzia, październik 2026
Narzędzie
Komenda
Domyślny URL
next dev / next start
Przykład hello world z Express
Ruby on Rails
bin/rails server
Vite
Vite preview
vite preview
Astro
astro dev
Obsługa zajętego portu we własnym serwerze
Odczytaj port z PORT i czytelnie zgłoś EADDRINUSE
Mały serwer Express, który domyślnie używa 3000 i wyświetla czytelny komunikat, gdy port jest zajęty.
macOS i Linux
Wyświetl proces nasłuchujący na porcie, a potem zatrzymaj go po jego PID (druga kolumna).
Windows (wiersz polecenia)
Pokaż połączenia z identyfikatorami procesów, odfiltruj według portu, a potem zakończ ten PID.
Zamiast tego uruchom na innym porcie
Zostaw drugi proces w spokoju i uruchom aplikację tam, gdzie jest wolne.
Zwolnij port
Port
Porty mają numery od 1 do 65535. Pokazuję komendy dla 3000.