ERR_CONNECTION_REFUSED: serwer odrzuca połączenie
· 6 min czytania
Co oznacza ten błąd
Przeglądarka znalazła adres serwera, wysłała żądanie połączenia na port 443 (albo 80), a serwer odpowiedział „nie”: resetem TCP, który system operacyjny wysyła, gdy na tym porcie nie nasłuchuje żaden program. Chrome pokazuje ERR_CONNECTION_REFUSED („Nie można uzyskać dostępu do tej witryny”), Firefox „Nie można nawiązać połączenia”, Safari „Safari nie może połączyć się z serwerem”.
To coś innego niż przekroczenie czasu (nic w ogóle nie odpowiada, zwykle firewall gubiący pakiety albo wyłączony serwer) i niż DNS_PROBE_FINISHED_NXDOMAIN (nazwa nie jest rozwiązywana). Odrzucone połączenie oznacza: maszyna działa i jest osiągalna, ale serwer WWW na niej nie działa, nasłuchuje na innym porcie lub adresie albo blokuje go firewall, który odrzuca zamiast gubić.
Częste przyczyny
- Serwer WWW jest zatrzymany. nginx albo Apache się wysypał, nie wystartował po zmianie konfiguracji albo został zatrzymany przez aktualizację. Zdecydowanie najczęstsza przyczyna.
- Serwer WWW nasłuchuje na złym adresie albo porcie. Po zmianie dyrektyw
listennginx wiąże się tylko z127.0.0.1albo tylko z IPv4, podczas gdy rekord DNS wskazuje adres IPv6. - Firewall odrzuca port.
ufw,firewalldalbo grupa zabezpieczeń w chmurze z regułąrejectdla 80/443, często po tym, jak ktoś „utwardził” serwer. - Nowy serwer bez serwera WWW. Rekord DNS już wskazuje nowy adres IP, ale nginx nie jest jeszcze zainstalowany albo uruchomiony.
- HTTPS nieskonfigurowany. Port 80 działa, na porcie 443 nikt nie nasłuchuje, a przeglądarka (albo wpis HSTS) upiera się przy HTTPS.
- Przyczyny lokalne po stronie odwiedzającego. Ustawienie proxy wskazujące martwe proxy, VPN, „osłona WWW” antywirusa, wpis w pliku hosts albo rozszerzenie przeglądarki.
Jeśli odwiedzasz cudzą stronę
- Spróbuj otworzyć stronę w oknie prywatnym i w innej przeglądarce, co wyklucza rozszerzenia i pamięć podręczną.
- Sprawdź ustawienia proxy: Windows „Ustawienia serwera proxy”, macOS Sieć > Zaawansowane > Proxy. Wyłącz ręczne proxy, którego nie używasz.
- Na chwilę wyłącz VPN i ochronę WWW antywirusa.
- Wyczyść DNS (
ipconfig /flushdns,sudo dscacheutil -flushcache), na wypadek gdyby pamięć podręczna trzymała stary adres strony, która się przeniosła. - Spróbuj raz
http://zamiasthttps://; jeśli to działa, HTTPS strony jest zepsute i właściciel musi to naprawić.
Jeśli to Twoja strona: najpierw sprawdź
Uruchom narzędzie Is it down?. „Połączenie odrzucone” z zewnątrz potwierdza, że odrzuca sam serwer. Potem zaloguj się przez SSH (działające SSH przy odrzucającej stronie samo w sobie jest mocną wskazówką: serwer działa, serwer WWW nie).
# czy serwer WWW działa?
systemctl status nginx
systemctl status apache2
# co nasłuchuje na 80 i 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# reguły firewalla
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Jeśli ss nie pokazuje nic na 443, serwer WWW nie działa albo nie jest do tego skonfigurowany. Jeśli pokazuje 127.0.0.1:443 zamiast 0.0.0.0:443 albo *:443, nasłuchuje tylko lokalnie.
Naprawy na własnym serwerze
1. Uruchom serwer WWW i odczytaj, dlaczego się zatrzymał
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Jeśli nie chce wystartować, powody to prawie zawsze jeden z tych:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): inny program trzyma port (zainstalowane razem Apache i nginx albo zawieszony proces).sudo ss -tlnp | grep :80go wskaże; zatrzymaj ten, którego nie chcesz.[emerg] unknown directivealbounexpected "}": błąd składni w pliku konfiguracyjnym.sudo nginx -twypisuje plik i linię.cannot load certificate: plik certyfikatu został usunięty albo odnowiony do innej ścieżki. Porównaj liniessl_certificatez tym, co jest na dysku.Too many open filesalbo pełny dysk:df -h,df -i.
Apache: sudo apachectl configtest, potem sudo journalctl -u apache2 -n 50. Te same kategorie; AH00558 (could not determine server name) to tylko ostrzeżenie, nie przyczyna.
Zawsze testuj przed przeładowaniem i przeładowuj zamiast restartować, gdy to możliwe:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Nasłuchuj na właściwym adresie
W bloku server nginx potrzebne są obie pary, dla IPv4 i IPv6:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Jeśli DNS ma rekord AAAA, a serwer nie nasłuchuje na IPv6 (albo nie ma łączności IPv6), odwiedzający przez IPv6 dostają odrzucone połączenie, a wszyscy inni nie mają problemu. Albo włącz nasłuch, albo usuń rekord AAAA.
3. Otwórz firewall
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (rodzina RHEL)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Na serwerze w chmurze sprawdź też grupę zabezpieczeń albo firewall sieciowy dostawcy w panelu; reguła tam jest niewidoczna z wnętrza serwera.
4. Skonfiguruj HTTPS, jeśli odpowiada tylko port 80
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d przyklad.pl -d www.przyklad.pl
Certbot dodaje blok server dla 443 i przekierowanie. Potem sprawdź przez SSL checker, czy łańcuch jest kompletny.
5. Po przeprowadzce serwera
Upewnij się, że serwer WWW na nowej maszynie jest zainstalowany, skonfigurowany dla domeny i uruchomiony, zanim zmienisz DNS. Jeśli zmiana już nastąpiła: zainstaluj i uruchom go teraz albo skieruj rekord z powrotem na stary serwer, dopóki nowy nie będzie gotowy.
Gdy to problem dostawcy hostingu
Na hostingu współdzielonym odrzucone połączenie oznacza, że serwer WWW dostawcy nie działa na Twoim węźle albo przeniesiono Cię na nowy adres IP bez aktualizacji DNS. Wyślij:
Dzień dobry, moja strona przyklad.pl zwraca „connection refused” na portach 80 i 443 od około 20:15 UTC. Domena rozwiązuje się na 203.0.113.10. Po mojej stronie nic się nie zmieniło. Czy serwer WWW na tej maszynie nie działa, czy moja strona została przeniesiona na inny adres?
Jak zapobiec następnemu
Odrzucone połączenie to prawie zawsze zatrzymany serwer WWW, a zatrzymana usługa to dokładnie to, co sprawdzanie portu i sprawdzanie strony z zewnątrz zauważają w ciągu minuty. Na własnym serwerze agent serwerowy wysyła alert, gdy nginx albo Apache się zatrzyma. Awaria? Naprawiamy: Quick Fix restartuje go po udanym teście konfiguracji, w stałej cenie, bez niczyjego logowania o trzeciej w nocy. Jeśli zepsuta jest sama konfiguracja, naprawia ją Deep Fix. Zobacz naprawa serwera. Pokrewne błędy: ERR_CONNECTION_TIMED_OUT i ERR_CONNECTION_RESET.
Co teraz
Sprawdź z zewnątrz
Strona nie działa u wszystkich czy tylko u Ciebie i co odpowiada serwer? Za darmo, bez rejestracji.
Is it down? Sprawdź, czy strona działaAwaria? Naprawiamy.
Na Twoim własnym serwerze albo na hostingu z dostępem SSH: Quick Fix w stałej cenie na częste przyczyny, Deep Fix rozliczany w blokach po 15 minut na resztę, przez całą dobę. Cena przed zamówieniem.
Zamów naprawęWięcej poradników
- Strona nie działa: co zrobić w pierwszych 15 minutach
- Awaria serwera: co sprawdzić i w jakiej kolejności
- Błąd 500 Internal Server Error: znajdź przyczynę w logach i przywróć stronę
- Błąd 502 Bad Gateway: znajdź przyczynę i napraw
- Błąd 503: przeciążenie, konserwacja czy limit hostingu?
- Błąd 504 Gateway Timeout: znajdź, co spowalnia stronę
- Błąd 521 i 522 w Cloudflare: serwer źródłowy nie odpowiada
- DNS_PROBE_FINISHED_NXDOMAIN: domena przestała odpowiadać
- ERR_CONNECTION_TIMED_OUT: serwer nie odpowiada na czas
- Co oznacza „Połączenie nie jest prywatne” i jak to naprawić
- ERR_SSL_PROTOCOL_ERROR: bezpieczne połączenie zawodzi przed certyfikatem
- ERR_TOO_MANY_REDIRECTS: znajdź pętlę przekierowań i ją przerwij
- Błąd 403 Forbidden: co blokuje dostęp do Twojej strony
- ERR_NAME_NOT_RESOLVED: nie można znaleźć nazwy strony
- „Błąd podczas nawiązywania połączenia z bazą danych” w WordPressie: przyczyna i naprawa
- ERR_CONNECTION_RESET: dlaczego połączenie zrywa się w połowie
- Błąd 429 Too Many Requests: który limit blokuje odwiedzających
- ERR_EMPTY_RESPONSE: serwer nie wysłał żadnych danych
- Błąd krytyczny WordPress: znajdź przyczynę i przywróć stronę