Erreurs

❌ Erreur Linux "Connection refused" — Causes et Solutions

🐧 Erreur Linux

Connexion refusée — le port est fermé ou le service n'écoute pas

🐧 Linux 📋 6 causes 🔧 5 solutions
L'erreur Connection refused (ECONNREFUSED) signifie que l'hôte destination est joignable mais qu'il n'y a aucun service en écoute sur ce port. L'hôte répond activement avec un paquet TCP RST pour refuser la connexion.

⚠️ Causes possibles

⚠️
Service arrêté ou planté
Le daemon (nginx, sshd, mysql...) n'est pas démarré
⚠️
Service écoute sur mauvais port
Le service écoute sur le port 8080 mais vous tentez le 80
⚠️
Service écoute uniquement sur localhost
Bind sur 127.0.0.1 au lieu de 0.0.0.0
⚠️
Firewall bloque le port
iptables / ufw / firewalld refuse les connexions entrantes
⚠️
Mauvaise adresse IP
Connexion vers la mauvaise IP ou le DNS pointe vers une mauvaise IP
⚠️
Service plante au démarrage
Le service démarre puis crash immédiatement

🔧 Solutions étape par étape

1

Vérifier si le service tourne

terminal
# Voir l'état d'un service systemd
systemctl status nginx
systemctl status sshd
systemctl status mysql

# Voir les logs du service
journalctl -u nginx -n 50
journalctl -u sshd --since "10 minutes ago"

# Démarrer un service arrêté
systemctl start nginx
systemctl enable nginx  # Démarrage automatique
2

Vérifier les ports en écoute

terminal
# Voir tous les ports TCP en écoute
ss -tulnp
# ou
netstat -tulnp

# Vérifier un port spécifique
ss -tulnp | grep :80
ss -tulnp | grep :22
ss -tulnp | grep :3306

# Voir quel processus écoute sur le port 80
fuser 80/tcp
lsof -i :80
3

Vérifier le bind address du service

terminal
# Nginx — vérifier listen
grep -r "listen" /etc/nginx/
# Doit contenir : listen 0.0.0.0:80; ou listen 80;
# Si 127.0.0.1:80 → accessible seulement en local !

# MySQL — vérifier bind-address
grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf
# Changer 127.0.0.1 → 0.0.0.0 pour accès distant

# SSH — vérifier ListenAddress
grep ListenAddress /etc/ssh/sshd_config
4

Tester la connexion

terminal
# Tester un port TCP
nc -zv 192.168.1.10 80
nc -zv localhost 3306

# Tester avec curl
curl -v http://192.168.1.10:80
curl -v https://192.168.1.10:443

# Tester SSH
ssh -v user@192.168.1.10
ssh -p 2222 user@192.168.1.10
5

Vérifier et ouvrir le firewall

terminal
# UFW (Ubuntu)
ufw status
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp

# iptables
iptables -L INPUT -n -v | grep :80
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# firewalld (CentOS/RHEL)
firewall-cmd --list-ports
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

🛡️ Comment éviter cette erreur

  • ✅ Après chaque installation de service, vérifier avec ss -tulnp qu'il écoute sur la bonne adresse
  • ✅ Utiliser systemctl enable pour activer le démarrage automatique au boot
  • ✅ Configurer le bind address correctement : 0.0.0.0 pour accès réseau, 127.0.0.1 pour local uniquement
  • ✅ Mettre en place un monitoring (Zabbix) pour alerter si un service s'arrête
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google