ERR_CONNECTION_REFUSED: okok és javítás
· 7 perc olvasás
Mit jelent a hiba
A böngésző megtalálta a szerver címét, kapcsolódási kérést küldött a 443-as (vagy 80-as) portra, és a szerver „nem”-mel válaszolt: TCP reset, amelyet az operációs rendszer akkor küld, ha egyetlen program sem figyel azon a porton. A Chrome ERR_CONNECTION_REFUSED hibát mutat („Az oldal nem érhető el”), a Firefox „Unable to connect” üzenetet, a Safari „Safari can't connect to the server” üzenetet.
Ez más, mint egy időtúllépés (semmi nem válaszol, általában egy csomagokat eldobó tűzfal vagy egy kikapcsolt szerver), és más, mint a DNS_PROBE_FINISHED_NXDOMAIN (a név nem oldódik fel). Az elutasított kapcsolat azt jelenti: a gép fut és elérhető, de a rajta lévő webszerver nem fut, másik porton vagy címen figyel, vagy egy tűzfal blokkolja, amely elutasít, nem eldob.
Gyakori okok
- A webszerver le van állítva. Az nginx vagy az Apache összeomlott, konfigurációváltás után nem indult el, vagy egy frissítés leállította. Messze a leggyakoribb ok.
- A webszerver rossz címen vagy porton figyel. A
listendirektívák módosítása után az nginx csak a127.0.0.1címhez vagy csak IPv4-hez kötődik, miközben a DNS-rekord IPv6-címre mutat. - Egy tűzfal elutasítja a portot.
ufw,firewalldvagy egy felhős biztonsági csoportrejectszabállyal a 80/443-ra, gyakran miután valaki „megerősítette” a szervert. - Új szerver webszerver nélkül. A DNS-rekord már az új IP-címre mutat, de az nginx még nincs telepítve vagy elindítva.
- A HTTPS nincs beállítva. A 80-as port működik, a 443-asnak nincs figyelője, és a böngésző (vagy egy HSTS-bejegyzés) ragaszkodik a HTTPS-hez.
- Helyi okok a látogató oldalán. Egy halott proxyra mutató proxybeállítás, egy VPN, a vírusirtó „webpajzsa”, egy hosts fájlbejegyzés vagy egy böngészőbővítmény.
Ha látogató
- Próbálja az oldalt privát ablakban és másik böngészővel, ami kizárja a bővítményeket és a gyorsítótárat.
- Ellenőrizze a proxybeállításokat: Windows „Proxybeállítások”, macOS Hálózat > Haladó > Proxyk. Kapcsoljon ki egy kézi proxyt, amelyet nem használ.
- Kapcsolja ki egy pillanatra a VPN-t és a vírusirtó webvédelmét.
- Ürítse a DNS-t (
ipconfig /flushdns,sudo dscacheutil -flushcache), arra az esetre, ha a gyorsítótára egy elköltözött oldal régi címét őrzi. - Próbálja egyszer
http://címmelhttps://helyett; ha az működik, az oldal HTTPS-e hibás, és a tulajdonosnak kell megjavítania.
Ha a saját oldala: először ellenőrizze
Futtassa a weboldal-leállás ellenőrzőt. A kívülről érkező „Connection refused” megerősíti, hogy maga a szerver utasít el. Aztán jelentkezzen be SSH-val (ha az SSH működik, miközben a weboldal elutasít, az maga is erős jel: a szerver fut, a webszerver nem).
# fut-e a webszerver?
systemctl status nginx
systemctl status apache2
# mi figyel a 80-as és 443-as porton?
sudo ss -tlnp | grep -E ':80 |:443 '
# tűzfalszabályok
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Ha az ss semmit nem mutat a 443-ason, a webszerver leállt vagy nincs rá konfigurálva. Ha 0.0.0.0:443 vagy *:443 helyett 127.0.0.1:443 szerepel, csak helyben figyel.
Javítások a saját szerveren
1. Indítsa el a webszervert, és olvassa el, miért állt le
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Ha nem indul el, az okok szinte mindig ezek egyike:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): másik program tartja a portot (az Apache és az nginx is telepítve van, vagy egy elavult folyamat). Asudo ss -tlnp | grep :80megnevezi; állítsa le azt, amelyiket nem akarja.[emerg] unknown directivevagyunexpected "}": szintaktikai hiba egy konfigurációs fájlban. Asudo nginx -tkiírja a fájlt és a sort.cannot load certificate: egy tanúsítványfájlt töröltek, vagy másik útvonalra újítottak meg. Vesse össze azssl_certificatesorokat a lemezen lévővel.Too many open filesvagy megtelt lemez:df -h,df -i.
Apache: sudo apachectl configtest, majd sudo journalctl -u apache2 -n 50. Ugyanezek a kategóriák érvényesek; az AH00558 (a szervernév nem állapítható meg) csak figyelmeztetés, nem az ok.
Újratöltés előtt mindig tesztelje, és ha lehet, újratöltsön újraindítás helyett:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Figyeljen a megfelelő címen
Az nginx server blockjában mindkettő kell az IPv4-hez és az IPv6-hoz:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Ha a DNS-nek van AAAA-rekordja, de a szerver nem figyel IPv6-on (vagy nincs IPv6-kapcsolata), az IPv6-os látogatók elutasított kapcsolatot kapnak, miközben mindenki más rendben van. Vagy állítsa be, hogy figyeljen, vagy távolítsa el az AAAA-rekordot.
3. Nyissa meg a tűzfalat
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (RHEL-család)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Felhőszerveren ellenőrizze a szolgáltató biztonsági csoportját vagy hálózati tűzfalát is a vezérlőpulton; egy ottani szabály a szerver belsejéből láthatatlan.
4. Állítsa be a HTTPS-t, ha csak a 80-as port válaszol
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
A Certbot hozzáadja a 443-as server blockot és az átirányítást. Aztán az SSL-ellenőrzővel ellenőrizze, hogy a lánc teljes-e.
5. Szerverköltözés után
Mielőtt a DNS-t módosítaná, győződjön meg arról, hogy az új gépen a webszerver telepítve van, a domainre konfigurálva van, és el van indítva. Ha már módosította: telepítse és indítsa el most, vagy irányítsa vissza a rekordot a régi szerverre, amíg az új nem kész.
Ha a tárhelyszolgáltató problémája
Megosztott tárhelyen az elutasított kapcsolat azt jelenti, hogy a tárhelyszolgáltató webszervere leállt az Ön csomópontján, vagy új IP-címre költöztették a DNS frissítése nélkül. Küldje el:
Üdvözlöm! Az example.com weboldalam kb. 20:15 UTC óta „connection refused” hibát ad a 80-as és 443-as porton. A domain a 203.0.113.10 címre oldódik fel. Nem módosítottam semmit a fiókomban. Leállt a webszerver azon a gépen, vagy az oldalam másik címre költözött?
A következő megelőzése
Az elutasított kapcsolat szinte mindig leállt webszerver, és a leállt szolgáltatást pontosan az észleli egy percen belül, amit kívülről egy portellenőrzés és egy weboldal-ellenőrzés vizsgál. Saját szerveren a szerverügynök riaszt, ha az nginx vagy az Apache leáll, a Quick Fix pedig sikeres konfigurációs teszt után újraindítja, fix áron, anélkül, hogy bárkinek hajnali 3-kor be kellene jelentkeznie. Ha maga a konfiguráció hibás, a Deep Fix megjavítja.
Mi legyen most
Ellenőrizze kívülről
Az oldal mindenki számára leállt, vagy csak az Ön számára, és mit válaszol a szerver? Ingyenes, regisztráció nélkül.
Weboldal-leállás ellenőrzőLeállt? Mi beavatkozunk.
Saját szerveren vagy SSH-hozzáféréssel rendelkező tárhelyen: Quick Fix fix áron a gyakori okokra, Deep Fix 15 perces blokkokban elszámolva a többire, éjjel-nappal. Az árat rendelés előtt látja.
Javíttassa megTovábbi útmutatók
- Leállt a weboldala. Ezt tegye az első 15 percben.
- Leállt a szerver: mit ellenőrizzen először, és milyen sorrendben
- 502 Bad Gateway: okok és javítás
- 503 Service Unavailable: túlterhelés vagy karbantartás?
- 504 Gateway Timeout: mit jelent, és hogyan javítsa
- DNS_PROBE_FINISHED_NXDOMAIN: okok és javítás
- „A kapcsolat nem biztonságos”: az SSL-tanúsítvány figyelmeztetése