ERR_CONNECTION_REFUSED: uzroci i kako ga popraviti
· 6 min čitanja
Što pogreška znači
Preglednik je pronašao adresu servera, poslao zahtjev za vezu na port 443 (ili 80), a server je odgovorio „ne“: TCP reset, koji operacijski sustav šalje kad nijedan program ne sluša na tom portu. Chrome prikazuje ERR_CONNECTION_REFUSED („This site can't be reached“), Firefox „Unable to connect“, Safari „Safari can't connect to the server“.
To se razlikuje od isteka vremena (uopće ništa ne odgovara, obično vatrozid koji odbacuje pakete ili isključen server) i od DNS_PROBE_FINISHED_NXDOMAIN (naziv se ne razrješava). Odbijena veza znači: stroj radi i dostupan je, ali web server na njemu ne radi, sluša na drugom portu ili adresi ili ga blokira vatrozid koji odbija umjesto da odbacuje.
Uobičajeni uzroci
- Web server je zaustavljen. nginx ili Apache srušio se, nije se uspio pokrenuti nakon promjene konfiguracije ili ga je zaustavilo ažuriranje. Daleko najčešći uzrok.
- Web server sluša na pogrešnoj adresi ili portu. Nakon promjene direktiva
listennginx se veže samo na127.0.0.1ili samo na IPv4, dok DNS zapis pokazuje na IPv6 adresu. - Vatrozid odbija port.
ufw,firewalldili sigurnosna grupa u oblaku s pravilomrejectza 80/443, često nakon što je netko „ojačao“ server. - Novi server bez web servera. DNS zapis već pokazuje na novi IP, ali nginx još nije instaliran ili pokrenut.
- HTTPS nije postavljen. Port 80 radi, port 443 nema slušatelja, a preglednik (ili HSTS zapis) inzistira na HTTPS-u.
- Lokalni uzroci na strani posjetitelja. Postavka proxyja koja pokazuje na mrtav proxy, VPN, antivirusni „web shield“, unos u datoteci hosts ili proširenje preglednika.
Ako ste posjetitelj
- Pokušajte stranicu u privatnom prozoru i s drugim preglednikom, čime se isključuju proširenja i predmemorija.
- Provjerite postavke proxyja: Windows „Proxy settings“, macOS Network > Advanced > Proxies. Isključite ručni proxy koji ne koristite.
- Na trenutak isključite VPN i antivirusnu web zaštitu.
- Očistite DNS (
ipconfig /flushdns,sudo dscacheutil -flushcache) za slučaj da vaša predmemorija drži staru adresu stranice koja se preselila. - Jednom pokušajte
http://umjestohttps://; ako to radi, HTTPS stranice je pokvaren i vlasnik ga mora popraviti.
Ako je riječ o vašoj stranici: prvo provjerite
Pokrenite provjeru ispada web stranice. „Connection refused“ izvana potvrđuje da sam server odbija. Zatim se prijavite putem SSH-a (SSH koji radi dok web stranica odbija sam je po sebi snažan nagovještaj: server radi, web server ne).
# radi li web server?
systemctl status nginx
systemctl status apache2
# što sluša na 80 i 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# pravila vatrozida
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Ako ss ne pokazuje ništa na 443, web server ne radi ili nije konfiguriran za to. Ako pokazuje 127.0.0.1:443 umjesto 0.0.0.0:443 ili *:443, sluša samo lokalno.
Popravci na vlastitom serveru
1. Pokrenite web server i pročitajte zašto je stao
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Ako se ne uspije pokrenuti, razlozi su gotovo uvijek jedan od ovih:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): drugi program drži port (instalirani su i Apache i nginx ili zaostao proces).sudo ss -tlnp | grep :80ga imenuje; zaustavite onaj koji ne želite.[emerg] unknown directiveiliunexpected "}": sintaksna pogreška u konfiguracijskoj datoteci.sudo nginx -tispisuje datoteku i redak.cannot load certificate: datoteka certifikata izbrisana je ili obnovljena na drugu putanju. Usporedite retkessl_certificates onim što je na disku.Too many open filesili pun disk:df -h,df -i.
Apache: sudo apachectl configtest, zatim sudo journalctl -u apache2 -n 50. Iste kategorije vrijede; AH00558 (could not determine server name) samo je upozorenje, a ne uzrok.
Uvijek testirajte prije ponovnog učitavanja i, kad je moguće, učitajte ponovno umjesto da restartate:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Slušajte na pravoj adresi
U server bloku nginxa potrebna su oba za IPv4 i IPv6:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Ako DNS ima AAAA zapis, a server ne sluša na IPv6 (ili nema IPv6 povezivost), posjetitelji na IPv6 dobivaju odbijenu vezu dok je svima ostalima u redu. Ili ga natjerajte da sluša ili uklonite AAAA zapis.
3. Otvorite vatrozid
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (obitelj RHEL)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Na cloud serveru provjerite i sigurnosnu grupu ili mrežni vatrozid pružatelja u kontrolnoj ploči; pravilo tamo nevidljivo je iznutra servera.
4. Postavite HTTPS ako odgovara samo port 80
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot dodaje server blok za 443 i preusmjeravanje. Zatim SSL checkerom provjerite je li lanac potpun.
5. Nakon selidbe servera
Pobrinite se da je web server na novom stroju instaliran, konfiguriran za domenu i pokrenut prije nego što promijenite DNS. Ako ste ga već promijenili: instalirajte ga i pokrenite sada ili usmjerite zapis natrag na stari server dok novi ne bude spreman.
Kad je problem vašeg hostinga
Na zajedničkom hostingu odbijena veza znači da je web server hostinga za vaš čvor nedostupan ili su vas preselili na novi IP bez ažuriranja DNS-a. Pošaljite:
Poštovani, moja web stranica example.com vraća „connection refused“ na portovima 80 i 443 otprilike od 20:15 UTC. Domena se razrješava u 203.0.113.10. Nisam ništa mijenjao na svom računu. Je li web server na tom stroju nedostupan ili se moja stranica preselila na drugu adresu?
Sprječavanje sljedećeg
Odbijena veza gotovo je uvijek zaustavljen web server, a zaustavljena usluga upravo je ono što provjera porta i provjera web stranice izvana primijete u roku od minute. Na vlastitom serveru agent za servere upozorava vas kad nginx ili Apache stane, a Quick Fix ga ponovno pokreće nakon uspješnog testa konfiguracije, po fiksnoj cijeni, bez da se itko prijavljuje u 3 ujutro. Ako je sama konfiguracija pokvarena, popravlja je Deep Fix.
Što sad
Provjerite izvana
Je li stranica nedostupna svima ili samo vama i što server odgovara? Besplatno, bez registracije.
Provjera ispada web straniceIspad? Mi uskačemo.
Na vlastitom serveru ili u web prostoru s SSH pristupom: Quick Fix po fiksnoj cijeni za uobičajene uzroke, Deep Fix uz naplatu u blokovima od 15 minuta za ostalo, kroz cijelu noć i dan. Cijena prije narudžbe.
Naručite popravakViše vodiča
- Vaša web stranica ne radi. Evo što učiniti u prvih 15 minuta.
- Server ne radi: što prvo provjeriti i kojim redom
- Pogreška 502 Bad Gateway: uzroci i kako je popraviti
- Pogreška 503 Service Unavailable: preopterećenje ili održavanje?
- Pogreška 504 Gateway Timeout: što znači i kako je popraviti
- DNS_PROBE_FINISHED_NXDOMAIN: uzroci i popravci
- „Vaša veza nije privatna“: upozorenje o SSL certifikatu