ERR_CONNECTION_REFUSED: príčiny a oprava
· 6 min čítania
Čo chyba znamená
Prehliadač našiel adresu servera, poslal žiadosť o spojenie na port 443 (alebo 80) a server odpovedal „nie“: reset TCP, ktorý operačný systém pošle, keď na tom porte nepočúva žiadny program. Chrome zobrazí ERR_CONNECTION_REFUSED („Túto stránku nemožno zobraziť“), Firefox „Nedá sa pripojiť“, Safari „Safari sa nemôže pripojiť k serveru“.
Líši sa to od timeoutu (nič neodpovedá vôbec, zvyčajne firewall, ktorý zahadzuje pakety, alebo vypnutý server) a od DNS_PROBE_FINISHED_NXDOMAIN (názov sa nepreloží). Odmietnuté spojenie znamená: stroj beží a je dosiahnuteľný, ale webový server na ňom nebeží, počúva na inom porte alebo adrese, alebo ho blokuje firewall, ktorý odmieta namiesto zahadzovania.
Bežné príčiny
- Webový server je zastavený. nginx alebo Apache spadol, po zmene konfigurácie sa nepodarilo spustiť alebo ho zastavila aktualizácia. Zďaleka najčastejšia príčina.
- Webový server počúva na nesprávnej adrese alebo porte. Po zmene direktív
listensa nginx naviaže len na127.0.0.1alebo len na IPv4, kým záznam DNS ukazuje na adresu IPv6. - Firewall odmieta port.
ufw,firewalldalebo cloudová bezpečnostná skupina s pravidlomrejectpre 80/443, často potom, čo niekto server „zabezpečil“. - Nový server bez webového servera. Záznam DNS už ukazuje na novú IP, ale nginx ešte nie je nainštalovaný alebo spustený.
- HTTPS nie je nastavené. Port 80 funguje, port 443 nemá poslucháča a prehliadač (alebo záznam HSTS) trvá na HTTPS.
- Lokálne príčiny na strane návštevníka. Nastavenie proxy ukazujúce na mŕtvu proxy, VPN, „webový štít“ antivírusu, záznam v súbore hosts alebo rozšírenie prehliadača.
Ak ste návštevník
- Skúste web v súkromnom okne a v inom prehliadači, čo vylúči rozšírenia a cache.
- Skontrolujte nastavenia proxy: Windows „Nastavenia servera proxy“, macOS Sieť > Rozšírené > Proxy. Vypnite manuálnu proxy, ktorú nepoužívate.
- Na chvíľu vypnite VPN a webovú ochranu antivírusu.
- Vymažte DNS (
ipconfig /flushdns,sudo dscacheutil -flushcache), keby vaša cache držala starú adresu webu, ktorý sa presunul. - Skúste raz
http://namiestohttps://; ak to funguje, HTTPS webu je pokazené a majiteľ to musí opraviť.
Ak ide o váš web: najprv skontrolujte
Spustite kontrolu dostupnosti webu. „Connection refused“ zvonku potvrdzuje, že server sám odmieta. Potom sa prihláste cez SSH (SSH funguje, kým web odmieta, je samo osebe silný náznak: server beží, webový server nie).
# beží webový server?
systemctl status nginx
systemctl status apache2
# čo počúva na 80 a 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# pravidlá firewallu
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Ak ss na 443 nič neukáže, webový server nefunguje alebo na ňom nie je nakonfigurovaný. Ak ukáže 127.0.0.1:443 namiesto 0.0.0.0:443 alebo *:443, počúva len lokálne.
Opravy na vlastnom serveri
1. Spustite webový server a prečítajte si, prečo sa zastavil
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Ak sa nespustí, dôvody sú takmer vždy jeden z týchto:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): port drží iný program (nainštalované nginx aj Apache alebo zastaraný proces).sudo ss -tlnp | grep :80ho pomenuje; zastavte ten, ktorý nechcete.[emerg] unknown directivealebounexpected "}": syntaktická chyba v konfiguračnom súbore.sudo nginx -tvypíše súbor a riadok.cannot load certificate: súbor certifikátu bol zmazaný alebo obnovený do inej cesty. Skontrolujte riadkyssl_certificatevoči tomu, čo je na disku.Too many open filesalebo plný disk:df -h,df -i.
Apache: sudo apachectl configtest, potom sudo journalctl -u apache2 -n 50. Platia rovnaké kategórie; AH00558 (could not determine server name) je len varovanie, nie príčina.
Vždy testujte pred opätovným načítaním a podľa možnosti načítajte znova (reload) namiesto reštartu:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Počúvajte na správnej adrese
V bloku server v nginx sú potrebné obe tieto pre IPv4 aj IPv6:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Ak má DNS záznam AAAA, ale server na IPv6 nepočúva (alebo nemá konektivitu IPv6), návštevníci na IPv6 dostanú odmietnuté spojenie, kým všetci ostatní sú v poriadku. Buď ho nechajte počúvať, alebo záznam AAAA odstráňte.
3. Otvorte firewall
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (rodina RHEL)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Na cloudovom serveri skontrolujte aj bezpečnostnú skupinu alebo sieťový firewall poskytovateľa v ovládacom paneli; pravidlo tam zvnútra servera nie je vidieť.
4. Nastavte HTTPS, ak odpovedá len port 80
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot pridá blok server pre 443 a presmerovanie. Potom kontrolou SSL overte, že reťaz je úplná.
5. Po presune servera
Uistite sa, že webový server na novom stroji je nainštalovaný, nakonfigurovaný pre doménu a spustený, skôr než zmeníte DNS. Ak ste ho už zmenili: nainštalujte a spustite ho teraz, alebo nasmerujte záznam späť na starý server, kým nový nie je pripravený.
Keď je to problém vášho poskytovateľa
Na zdieľanom hostingu odmietnuté spojenie znamená, že webový server poskytovateľa pre váš uzol nefunguje, alebo vás presunuli na novú IP bez aktualizácie DNS. Pošlite:
Dobrý deň, môj web example.com vracia „connection refused“ na portoch 80 a 443 približne od 20:15 UTC. Doména sa prekladá na 203.0.113.10. Vo svojom účte som nič nemenil. Je webový server na tomto stroji nefunkčný, alebo sa môj web presunul na inú adresu?
Ako predísť ďalšej
Odmietnuté spojenie je takmer vždy zastavený webový server a zastavená služba je presne to, čo kontrola portu a kontrola webu zvonku zaznamenajú do minúty. Na vlastnom serveri vás serverový agent upozorní, keď sa nginx alebo Apache zastaví, a Quick Fix ho po úspešnom teste konfigurácie za pevnú cenu reštartuje, bez toho, aby sa o 3. hodine ráno niekto prihlasoval. Ak je pokazená samotná konfigurácia, opraví ju Deep Fix.
Čo ďalej
Skontrolujte to zvonku
Je web nedostupný pre všetkých alebo len pre vás a čo server odpovedá? Zdarma, bez registrácie.
Kontrola dostupnosti webuNefunguje? Zasiahneme.
Na vlastnom serveri alebo vo webhostingu s prístupom cez SSH: Quick Fix za pevnú cenu pri bežných príčinách, Deep Fix účtovaný po 15-minútových blokoch pri ostatných, nepretržite. Cena pred objednaním.
Nechať to opraviťĎalšie návody
- Váš web nefunguje. Čo robiť v prvých 15 minútach.
- Server nefunguje: čo skontrolovať ako prvé a v akom poradí
- Chyba 502 Bad Gateway: príčiny a oprava
- Chyba 503 Service Unavailable: preťaženie alebo údržba?
- Chyba 504 Gateway Timeout: čo znamená a ako ju opraviť
- DNS_PROBE_FINISHED_NXDOMAIN: príčiny a opravy
- „Vaše pripojenie nie je súkromné“: varovanie o SSL certifikáte