Aller au contenu principal

Problèmes courants VPS Linux

Ce guide vous aide à diagnostiquer et résoudre les problèmes les plus fréquents sur un VPS Linux.

Connexion impossible au VPS

Vérifier que le VPS est en ligne

Depuis le panel YorkHost, vérifiez que le VPS est bien démarré.

Tester la connectivité

# Ping depuis votre machine
ping VOTRE_IP

# Si le ping échoue, le VPS est peut-être éteint ou le réseau bloqué

Problème SSH

# Tester la connexion SSH avec verbose
ssh -v root@VOTRE_IP

# Si port personnalisé
ssh -v -p 2222 root@VOTRE_IP

Erreur "Connection refused" :

  • Le service SSH n'est pas démarré
  • Le port SSH est différent de 22
  • Le firewall bloque le port

Erreur "Connection timed out" :

  • Le VPS est éteint
  • Le firewall bloque tout le trafic
  • Problème réseau

Récupération via console VNC

Si SSH ne fonctionne pas, utilisez la console VNC depuis le panel :

# Vérifier le statut SSH
systemctl status sshd

# Redémarrer SSH
systemctl restart sshd

# Vérifier le firewall
ufw status

Serveur lent ou non réactif

Vérifier la charge système

# Vue d'ensemble
top

# Ou plus lisible
htop

# Charge moyenne
uptime

La "load average" indique le nombre de processus en attente :

  • < 1.0 : OK
  • 1.0 - 2.0 : Charge élevée
  • 2.0 : Surcharge

Identifier les processus gourmands

# Top 10 CPU
ps aux --sort=-%cpu | head -10

# Top 10 RAM
ps aux --sort=-%mem | head -10

Vérifier la RAM

free -h

Exemple :

              total        used        free      shared  buff/cache   available
Mem: 3.8Gi 2.1Gi 200Mi 100Mi 1.5Gi 1.4Gi
  • available : RAM réellement disponible (inclut le cache libérable)

Si RAM saturée :

# Identifier le coupable
ps aux --sort=-%mem | head -5

# Killer un processus (dernier recours)
kill -9 PID

Vérifier le swap

swapon --show
free -h

Si le swap est très utilisé, le système manque de RAM.

Disque plein

Vérifier l'espace disque

df -h

Exemple :

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1 50G 48G 2.0G 96% /
Attention

Un disque à 100% peut empêcher le système de démarrer et causer des corruptions de données.

Trouver les gros fichiers

# Dossiers les plus volumineux
du -h --max-depth=1 / | sort -hr | head -20

# Fichiers de plus de 100MB
find / -type f -size +100M 2>/dev/null

# Logs volumineux
du -h /var/log/ | sort -hr | head -10

Nettoyer l'espace

# Nettoyer les paquets apt inutiles
sudo apt autoremove -y
sudo apt clean

# Nettoyer les vieux kernels
sudo apt autoremove --purge

# Nettoyer les logs (avec précaution)
sudo journalctl --vacuum-time=7d
sudo find /var/log -name "*.gz" -delete
sudo find /var/log -name "*.1" -delete

# Nettoyer Docker (si utilisé)
docker system prune -af

Voir le guide Gestion de l'espace disque pour plus de détails.

Services qui ne démarrent pas

Vérifier le statut

systemctl status nom_du_service

États possibles :

  • active (running) : OK
  • inactive (dead) : Arrêté
  • failed : Erreur au démarrage

Voir les logs d'erreur

# Logs du service
journalctl -u nom_du_service -n 50

# Logs en temps réel
journalctl -u nom_du_service -f

Problèmes courants

Port déjà utilisé :

# Trouver qui utilise un port
sudo ss -tlnp | grep :80
sudo lsof -i :80

Fichier de configuration invalide :

# Tester la config Nginx
sudo nginx -t

# Tester la config Apache
sudo apachectl configtest

Permissions incorrectes :

# Vérifier le propriétaire
ls -la /chemin/vers/fichier

# Corriger les permissions
sudo chown www-data:www-data /var/www/html -R
sudo chmod 755 /var/www/html -R

Problèmes réseau

Vérifier la configuration réseau

# Interfaces réseau
ip addr

# Table de routage
ip route

# DNS
cat /etc/resolv.conf

Tester la résolution DNS

# Tester le DNS
nslookup google.com
dig google.com

Si DNS ne fonctionne pas :

# Configurer un DNS temporaire
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Tester la connectivité sortante

# Tester HTTP
curl -I https://google.com

# Tester avec IP (sans DNS)
curl -I http://142.250.179.110

Problèmes de firewall

Vérifier UFW

sudo ufw status verbose

Règles courantes oubliées

# SSH (port par défaut ou personnalisé)
sudo ufw allow 22/tcp
sudo ufw allow 2222/tcp

# Web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# FiveM
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp

Réinitialiser le firewall

# Désactiver temporairement
sudo ufw disable

# Réinitialiser toutes les règles
sudo ufw reset

# Reconfigurer
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable

Base de données inaccessible

MySQL/MariaDB

# Statut
systemctl status mysql
systemctl status mariadb

# Logs
tail -50 /var/log/mysql/error.log

# Tester la connexion
mysql -u root -p

Erreur "Too many connections" :

SHOW PROCESSLIST;
-- Tuer les connexions inactives
KILL ID_CONNEXION;

Erreur "Can't connect to MySQL server" :

# Vérifier que MySQL écoute
ss -tlnp | grep 3306

# Redémarrer
sudo systemctl restart mysql

Cron ne s'exécute pas

Vérifier les logs cron

grep CRON /var/log/syslog | tail -20

Problèmes courants

Chemin absolu manquant :

# Mauvais
* * * * * script.sh

# Bon
* * * * * /usr/local/bin/script.sh

Variables d'environnement :

# Ajouter en haut du crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Permissions du script :

chmod +x /chemin/vers/script.sh

Commandes utiles de diagnostic

# Informations système
uname -a
lsb_release -a

# Processus
top / htop
ps aux

# Mémoire
free -h
vmstat 1 5

# Disque
df -h
du -h --max-depth=1 /

# Réseau
ss -tlnp
ip addr
ping / traceroute

# Logs
journalctl -xe
tail -f /var/log/syslog
dmesg | tail
Conseil

En cas de problème grave, redémarrez le VPS depuis le panel YorkHost. Si le problème persiste, contactez le support avec les informations de diagnostic.