ERR_CONNECTION_REFUSED: cauze și cum se repară
· 6 minute de citit
Ce înseamnă eroarea
Browserul a găsit adresa serverului, a trimis o cerere de conexiune către portul 443 (sau 80), iar serverul a răspuns „nu”: un TCP reset, pe care sistemul de operare îl trimite când niciun program nu ascultă pe acel port. Chrome afișează ERR_CONNECTION_REFUSED („Acest site nu poate fi accesat”), Firefox „Nu se poate conecta”, Safari „Safari nu se poate conecta la server”.
Este diferit de un timeout (nu răspunde nimic, de obicei un firewall care pierde pachete sau un server oprit) și de DNS_PROBE_FINISHED_NXDOMAIN (numele nu se rezolvă). O conexiune refuzată înseamnă: mașina funcționează și este accesibilă, dar serverul web de pe ea nu rulează, ascultă pe alt port sau altă adresă ori este blocat de un firewall care respinge în loc să piardă pachetele.
Cauze frecvente
- Serverul web este oprit. nginx sau Apache s-a prăbușit, nu a mai pornit după o modificare de configurație sau a fost oprit de o actualizare. De departe cea mai frecventă cauză.
- Serverul web ascultă pe adresa sau portul greșit. După o modificare a directivelor
listen, nginx se leagă doar la127.0.0.1sau doar la IPv4, în timp ce înregistrarea DNS indică o adresă IPv6. - Un firewall respinge portul.
ufw,firewalldsau un security group cloud cu o regulărejectpentru 80/443, adesea după ce cineva a „întărit” serverul. - Un server nou fără server web. Înregistrarea DNS indică deja noul IP, dar nginx nu este instalat sau nu a fost încă pornit.
- HTTPS neconfigurat. Portul 80 funcționează, portul 443 nu are niciun ascultător, iar browserul (sau o intrare HSTS) insistă pe HTTPS.
- Cauze locale de partea vizitatorului. O setare de proxy care indică un proxy mort, un VPN, „web shield” al antivirusului, o intrare în fișierul hosts sau o extensie de browser.
Dacă ești vizitator
- Încearcă site-ul într-o fereastră privată și cu alt browser, ceea ce exclude extensiile și cache-ul.
- Verifică setările de proxy: Windows „Setări proxy”, macOS Rețea > Avansat > Proxy-uri. Oprește un proxy manual pe care nu îl folosești.
- Oprește pentru o clipă VPN-ul și protecția web a antivirusului.
- Golește DNS (
ipconfig /flushdns,sudo dscacheutil -flushcache) în caz că cache-ul tău ține o adresă veche a unui site care s-a mutat. - Încearcă o dată
http://în loc dehttps://; dacă funcționează, HTTPS-ul site-ului este defect, iar proprietarul trebuie să-l repare.
Dacă e site-ul tău: verifică mai întâi
Rulează website down checker. „Connection refused” din exterior confirmă că serverul însuși refuză. Apoi autentifică-te prin SSH (dacă SSH funcționează în timp ce site-ul refuză, este el însuși un indiciu puternic: serverul funcționează, serverul web nu).
# serverul web rulează?
systemctl status nginx
systemctl status apache2
# ce ascultă pe 80 și 443?
sudo ss -tlnp | grep -E ':80 |:443 '
# reguli de firewall
sudo ufw status verbose
sudo firewall-cmd --list-all
sudo nft list ruleset | grep -E 'dport (80|443)'
Dacă ss nu arată nimic pe 443, serverul web este căzut sau nu este configurat pentru el. Dacă arată 127.0.0.1:443 în loc de 0.0.0.0:443 sau *:443, ascultă doar local.
Remedieri pe propriul server
1. Pornește serverul web și citește de ce s-a oprit
sudo systemctl start nginx
systemctl status nginx
sudo journalctl -u nginx -n 50
Dacă nu reușește să pornească, motivele sunt aproape întotdeauna unul dintre acestea:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use): un alt program ține portul (Apache și nginx instalate amândouă sau un proces rămas).sudo ss -tlnp | grep :80îl numește; oprește-l pe cel pe care nu-l vrei.[emerg] unknown directivesauunexpected "}": o eroare de sintaxă într-un fișier de configurație.sudo nginx -tafișează fișierul și linia.cannot load certificate: un fișier de certificat a fost șters sau reînnoit într-o altă cale. Verifică liniilessl_certificatefață de ce se află pe disc.Too many open filessau un disc plin:df -h,df -i.
Apache: sudo apachectl configtest, apoi sudo journalctl -u apache2 -n 50. Se aplică aceleași categorii; AH00558 (could not determine server name) este doar un avertisment, nu cauza.
Testează întotdeauna înainte să reîncarci și reîncarcă în loc să repornești când este posibil:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
2. Ascultă pe adresa potrivită
În blocul server nginx, ambele sunt necesare pentru IPv4 și IPv6:
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Dacă DNS are o înregistrare AAAA, dar serverul nu ascultă pe IPv6 (sau nu are conectivitate IPv6), vizitatorii pe IPv6 primesc o conexiune refuzată, în timp ce toți ceilalți sunt în regulă. Fie îl faci să asculte, fie elimini înregistrarea AAAA.
3. Deschide firewall-ul
# ufw (Debian/Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# firewalld (familia RHEL)
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
Pe un server cloud, verifică și security group-ul sau firewall-ul de rețea al furnizorului în panoul de control; o regulă de acolo este invizibilă din interiorul serverului.
4. Configurează HTTPS dacă răspunde doar portul 80
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot adaugă blocul server 443 și redirecționarea. Apoi verifică cu SSL checker că lanțul este complet.
5. După o mutare de server
Asigură-te că serverul web de pe noua mașină este instalat, configurat pentru domeniu și pornit înainte să schimbi DNS-ul. Dacă l-ai schimbat deja: instalează-l și pornește-l acum sau îndreaptă înregistrarea înapoi către serverul vechi până când cel nou este gata.
Când e problema furnizorului tău de hosting
Pe hosting partajat, o conexiune refuzată înseamnă că serverul web al furnizorului este căzut pentru nodul tău sau te-au mutat pe un IP nou fără să actualizeze DNS-ul. Trimite:
Bună ziua, site-ul meu example.com returnează „connection refused” pe porturile 80 și 443 începând cu aproximativ 20:15 UTC. Domeniul se rezolvă la 203.0.113.10. Nu am schimbat nimic în contul meu. Serverul web de pe acea mașină este căzut sau site-ul meu s-a mutat la o altă adresă?
Prevenirea următorului
O conexiune refuzată este aproape întotdeauna un server web oprit, iar un serviciu oprit este exact ceea ce o verificare de port și o verificare de site din exterior observă în decurs de un minut. Pe propriul server, agentul de server te alertează când nginx sau Apache se oprește, iar un Quick Fix îl repornește după ce testul configurației trece, la preț fix, fără ca cineva să se autentifice la 3 dimineața. Dacă configurația însăși este defectă, un Deep Fix o repară.
Și acum
Verifică din exterior
Site-ul e căzut pentru toată lumea sau doar pentru tine și ce răspunde serverul? Gratuit, fără înregistrare.
Verificator de site căzutCăzut? Intervenim.
Pe propriul server sau într-un spațiu cu acces SSH: un Quick Fix la preț fix pentru cauzele frecvente, un Deep Fix facturat în blocuri de 15 minute pentru restul, non-stop. Prețul îl vezi înainte să comanzi.
Cere o reparațieMai multe ghiduri
- Site-ul tău e căzut. Iată ce faci în primele 15 minute.
- Server căzut: ce verifici mai întâi și în ce ordine
- Eroarea 502 Bad Gateway: cauze și remediere
- 503 Service Unavailable: suprasolicitat sau în mentenanță?
- 504 Gateway Timeout: ce înseamnă și cum se repară
- DNS_PROBE_FINISHED_NXDOMAIN: cauze și remedieri
- „Conexiunea nu este privată”: avertismentul certificatului SSL