Dépannage complet d’un VPS Virtualizor via Shadow Mode

🔍 Introduction

Lorsque votre VPS devient inaccessible — mot de passe root perdu, réseau défaillant ou pare-feu bloquant l’accès SSH — il est souvent possible de le récupérer sans réinstallation grâce au Shadow Mode de Virtualizor.

Ce mode permet de monter le disque d’un VPS directement sur le serveur hôte afin d’accéder à ses fichiers et d’effectuer des réparations (réseau, mot de passe, iptables, CSF, etc.) en ligne de commande.

🧱 Étape 1 : Monter le disque du VPS en Shadow Mode

Connectez-vous à votre serveur hôte (le serveur physique où est hébergé le VPS) via SSH, puis exécutez les commandes suivantes :

modprobe nbd max_part=8

🔸 Cette commande charge le module nbd (Network Block Device) dans le noyau Linux.
L’option max_part=8 indique que chaque disque virtuel pourra contenir jusqu’à 8 partitions.
Cela prépare le système à connecter un disque virtuel (fichier image) comme s’il s’agissait d’un disque réel.

💡 Si votre serveur héberge plusieurs VPS

Le module nbd n’est chargé qu’une seule fois, mais vous pouvez connecter plusieurs disques VPS à des périphériques différents :

# Exemple : plusieurs VPS sur le même hôte
modprobe nbd max_part=8          # Charger le module (une seule fois)

qemu-nbd --connect=/dev/nbd0 /dev/vz/private/100.raw   # VPS ID 100
qemu-nbd --connect=/dev/nbd1 /dev/vz/private/101.raw   # VPS ID 101
qemu-nbd --connect=/dev/nbd2 /dev/vz/private/102.raw   # VPS ID 102

Chaque VPS est associé à un périphérique distinct :

  • /dev/nbd0 → VPS 100
  • /dev/nbd1 → VPS 101
  • /dev/nbd2 → VPS 102

Par défaut, Linux crée jusqu’à 16 périphériques NBD (/dev/nbd0 à /dev/nbd15).
Si vous devez en gérer davantage, chargez le module avec :

modprobe nbd max_part=8 nbds_max=32

👉 Cette étape est le point de départ pour sélectionner le bon VPS à dépanner.
Identifiez le fichier disque du VPS à l’aide de :

ls /dev/vz/private/

Connexion du disque VPS

qemu-nbd --connect=/dev/nbd0 /dev/vz/private/100.raw

🔸 Cette commande utilise qemu-nbd pour associer un fichier disque VPS à un périphérique bloc.
/dev/nbd0 : le périphérique bloc créé.
/dev/vz/private/100.raw : le fichier image du VPS à monter.

💡 Le chemin dépend de votre configuration Virtualizor :

  • Pour un VPS KVM : /var/virtualizor/kvm/<VMID>/
  • Pour OpenVZ : /dev/vz/private/<VMID>.raw

Remplacez donc 100.raw par le fichier correspondant au VPS à réparer.

kpartx -av /dev/nbd0

🔸 Crée les points d’accès pour les partitions du disque (par exemple /dev/mapper/nbd0p1).

mount /dev/mapper/nbd0p1 /mnt

🔸 Monte la première partition du VPS sur le dossier /mnt afin d’y accéder.

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

🔸 Ces trois commandes « copient » les répertoires système de l’hôte dans le chroot du VPS pour que les outils système fonctionnent correctement.

chroot /mnt

🔸 Vous entrez maintenant dans le système du VPS comme si vous étiez connecté directement à l’intérieur.
Toutes les commandes suivantes s’exécuteront sur le VPS monté.

🔐 Étape 2 : Réinitialiser le mot de passe root

passwd

🔸 Tapez un nouveau mot de passe root, puis confirmez.
Ce mot de passe permettra de reprendre le contrôle du VPS une fois redémarré.

🌐 Étape 3 : Corriger la configuration réseau

Si nmcli ne fonctionne pas (souvent à cause d’une erreur D-Bus), configurez le réseau manuellement :

nano /etc/sysconfig/network-scripts/ifcfg-eth0

Ajoutez ou corrigez les lignes suivantes (en adaptant les IP à votre configuration) :

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
GATEWAY=XXX.XXX.XXX.1
DNS1=8.8.8.8
DNS2=1.1.1.1

Ensuite, dans /etc/resolv.conf :

nameserver 8.8.8.8
nameserver 1.1.1.1

🔥 Étape 4 : Réinitialiser iptables

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

🔸 Ces commandes effacent toutes les règles iptables existantes, puis rouvrent l’accès SSH (port 22).
Vous pouvez sauvegarder la configuration avec :

iptables-save > /etc/sysconfig/iptables

🛡️ Étape 5 : Neutraliser CSF (si installé)

ls /etc/csf/
nano /etc/csf/csf.conf

🔸 Si CSF est installé, ouvrez le fichier de configuration et activez le mode test :

TESTING = "1"

Cela désactive temporairement le pare-feu.
Vérifiez aussi les fichiers csf.allow et csf.deny pour débloquer votre IP.

🔄 Étape 6 : Sortie du chroot et redémarrage du VPS

exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
kpartx -d /dev/nbd0
qemu-nbd --disconnect /dev/nbd0
virsh start v1002

🔸 Ces commandes démontent le disque et redémarrent le VPS (ici v1002).
Remplacez v1002 par l’identifiant de votre machine virtuelle.

✅ Résultat : VPS récupéré sans réinstallation

  • Accès root restauré
  • Réseau corrigé
  • iptables réinitialisé
  • CSF neutralisé
  • VPS redémarré proprement

📦 Capsule Bash Nitrohost

Si vous devez réinitialiser iptables rapidement :

iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X
iptables -P INPUT ACCEPT && iptables -P FORWARD ACCEPT && iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

Rédigé par : Christian – Nitrohost

Lisez Avant de Partir !

✅ Rejoignez plus de 6 000 organisations francophones 
🇫🇷 qui nous font déjà confiance.
  • Nous rendons l’hébergement web accessible
  • Équipement moderne pour un prix dérisoire
  • Votre participation nous aide à améliorer l’entrepreneuriat des personnes à faible revenu.
VOIR NOS OFFRES
close-link
//></div>
Notre équipe de support client est sur WhatsApp pour répondre à vos questions. Demandez-nous n'importe quoi !</div></div></div><div class=