ERR_CONNECTION_REFUSED: vzroki in kako ga odpraviti
· Branje: 6 min
Kaj napaka pomeni
Brskalnik je našel naslov strežnika, poslal zahtevo za povezavo na vrata 443 (ali 80) in strežnik je odgovoril „ne“: ponastavitev TCP, ki jo operacijski sistem pošlje, ko na teh vratih ne posluša noben program. Chrome prikaže ERR_CONNECTION_REFUSED („Tega spletnega mesta ni mogoče doseči“), Firefox „Povezava ni mogoča“, Safari „Safari se ne more povezati s strežnikom“.
To se razlikuje od časovne omejitve (sploh nihče ne odgovarja, običajno požarni zid, ki zavrača pakete, ali izklopljen strežnik) in od DNS_PROBE_FINISHED_NXDOMAIN (ime se ne razreši). Zavrnjena povezava pomeni: računalnik teče in je dosegljiv, vendar spletni strežnik na njem ne teče, posluša na drugih vratih ali naslovu ali ga blokira požarni zid, ki zavrača namesto da zavrže.
Pogosti vzroki
- Spletni strežnik je ustavljen. nginx ali Apache sta se zrušila, se po spremembi konfiguracije nista zagnala ali ju je ustavila posodobitev. Daleč najpogostejši vzrok.
- Spletni strežnik posluša na napačnem naslovu ali vratih. Po spremembi direktiv
listense nginx veže samo na127.0.0.1ali samo na IPv4, medtem ko zapis DNS kaže na naslov IPv6. - Požarni zid zavrača vrata.
ufw,firewalldali varnostna skupina v oblaku s pravilomrejectza 80/443, pogosto potem, ko je nekdo strežnik „utrdil“. - Nov strežnik brez spletnega strežnika. Zapis DNS že kaže na nov IP, vendar nginx še ni nameščen ali zagnan.
- HTTPS ni nastavljen. Vrata 80 delujejo, vrata 443 nimajo poslušalca, brskalnik (ali vnos HSTS) pa vztraja pri HTTPS.
- Lokalni vzroki na strani obiskovalca. Nastavitev posrednika, ki kaže na mrtvega posrednika, VPN, „spletni ščit“ protivirusnega programa, vnos v datoteki hosts ali razširitev brskalnika.
Če ste obiskovalec
- Poskusite spletno mesto v zasebnem oknu in z drugim brskalnikom, kar izključi razširitve in predpomnilnik.
- Preverite nastavitve posrednika: Windows „Nastavitve posredniškega strežnika“, macOS Omrežje > Dodatno > Posredniki. Izklopite ročnega posrednika, ki ga ne uporabljate.
- Za trenutek izklopite VPN in spletno zaščito protivirusnega programa.
- Počistite DNS (
ipconfig /flushdns,sudo dscacheutil -flushcache), če vaš predpomnilnik hrani star naslov spletnega mesta, ki se je preselilo. - Enkrat poskusite
http://namestohttps://; če to deluje, je HTTPS spletnega mesta pokvarjen in ga mora popraviti lastnik.
Če je to vaše spletno mesto: najprej preverite
Zaženite preverjanje delovanja spletnega mesta. „Connection refused“ od zunaj potrjuje, da strežnik sam zavrača. Nato se prijavite prek SSH (če SSH deluje, medtem ko spletno mesto zavrača, je to že močan namig: strežnik teče, spletni strežnik pa ne).
# ali spletni strežnik teče?
systemctl status nginx
systemctl status apache2
# kaj posluša na 80 in 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# pravila požarnega zidu
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Če ss na 443 ne pokaže ničesar, spletni strežnik ne teče ali ni nastavljen zanje. Če pokaže 127.0.0.1:443 namesto 0.0.0.0:443 ali *:443, posluša samo lokalno.
Popravki na vašem lastnem strežniku
1. Zaženite spletni strežnik in preberite, zakaj se je ustavil
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Če se ne zažene, so razlogi skoraj vedno eden od teh:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): vrata zaseda drug program (nameščena sta tako Apache kot nginx ali zastarel proces).sudo ss -tlnp | grep :80ga poimenuje; ustavite tistega, ki ga ne želite.[emerg] unknown directivealiunexpected "}": sintaksna napaka v konfiguracijski datoteki.sudo nginx -tizpiše datoteko in vrstico.cannot load certificate: datoteka certifikata je bila izbrisana ali obnovljena na drugo pot. Preverite vrsticessl_certificateglede na to, kar je na disku.Too many open filesali poln disk:df -h,df -i.
Apache: sudo apachectl configtest, nato sudo journalctl -u apache2 -n 50. Veljajo iste kategorije; AH00558 (could not determine server name) je samo opozorilo, ne vzrok.
Vedno preizkusite, preden znova naložite, in kjer je mogoče, raje znova naložite kot znova zaženite:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Poslušajte na pravem naslovu
V bloku strežnika nginx sta za IPv4 in IPv6 potrebni obe:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Če ima DNS zapis AAAA, strežnik pa ne posluša na IPv6 (ali nima povezljivosti IPv6), obiskovalci na IPv6 dobijo zavrnjeno povezavo, vsi drugi pa so v redu. Ali poskrbite, da posluša, ali odstranite zapis AAAA.
3. Odprite požarni zid
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (družina RHEL)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Na strežniku v oblaku preverite tudi varnostno skupino ali omrežni požarni zid ponudnika v nadzorni plošči; pravilo tam je od znotraj strežnika nevidno.
4. Nastavite HTTPS, če odgovarjajo samo vrata 80
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot doda blok strežnika za 443 in preusmeritev. Nato s preverjanjem SSL preverite, ali je veriga popolna.
5. Po selitvi strežnika
Poskrbite, da je spletni strežnik na novem računalniku nameščen, nastavljen za domeno in zagnan, preden spremenite DNS. Če ste ga že spremenili: zdaj ga namestite in zaženite ali zapis usmerite nazaj na stari strežnik, dokler novi ni pripravljen.
Ko je težava pri vašem ponudniku gostovanja
Pri skupnem gostovanju zavrnjena povezava pomeni, da spletni strežnik ponudnika za vaše vozlišče ne deluje ali pa so vas preselili na nov IP, ne da bi posodobili DNS. Pošljite:
Pozdravljeni, moje spletno mesto example.com od približno 20:15 UTC vrača „connection refused“ na vratih 80 in 443. Domena se razreši v 203.0.113.10. V mojem računu ni bilo nobenih sprememb. Ali spletni strežnik na tem računalniku ne deluje ali se je moje spletno mesto preselilo na drug naslov?
Preprečevanje naslednjega
Zavrnjena povezava je skoraj vedno ustavljen spletni strežnik, ustavljena storitev pa je točno tisto, kar preverjanje vrat in preverjanje spletnega mesta od zunaj opazita v minuti. Na vašem lastnem strežniku vas agent za strežnik opozori, ko se nginx ali Apache ustavi, Quick Fix pa ga po fiksni ceni znova zažene, ko je preizkus njegove konfiguracije uspešen, ne da bi se kdo ob 3. uri zjutraj prijavljal. Če je pokvarjena sama konfiguracija, jo popravi Deep Fix.
Kaj zdaj
Preverite od zunaj
Ali spletno mesto ne deluje za vse ali samo za vas in kaj odgovarja strežnik? Brezplačno, brez registracije.
Preverjanje delovanja spletnega mestaNe deluje? Posežemo mi.
Na vašem lastnem strežniku ali v spletnem prostoru z dostopom SSH: Quick Fix po fiksni ceni za pogoste vzroke, Deep Fix, obračunan v 15-minutnih blokih, za vse ostalo, 24 ur na dan. Ceno vidite pred naročilom.
Naročite popraviloVeč vodičev
- Vaše spletno mesto ne deluje. Kaj storiti v prvih 15 minutah.
- Strežnik ne deluje: kaj preveriti najprej in v katerem vrstnem redu
- 502 Bad Gateway: vzroki in kako ga odpraviti
- 503 Service Unavailable: preobremenjeno ali v vzdrževanju?
- 504 Gateway Timeout: kaj pomeni in kako ga odpraviti
- DNS_PROBE_FINISHED_NXDOMAIN: vzroki in rešitve
- „Vaša povezava ni zasebna“: opozorilo o certifikatu SSL