Pánico. Tu VPS no responde. SSH dice “Connection refused” o simplemente timeout. Tu web está caída. ¿Qué haces?
Respira. La mayoría de casos tienen solución. Esta guía te lleva paso a paso desde “no puedo conectar” hasta “servidor recuperado”.
Antes de entrar en pánico
Verificar que el problema es real
# Desde tu ordenador local
# 1. ¿Hay ping?
ping -c 5 IP_DE_TU_VPS
# 2. ¿El puerto SSH responde?
nc -zv IP_DE_TU_VPS 22 -w 5
# 3. ¿La web responde?
curl -I https://tudominio.com --connect-timeout 10
# 4. ¿Puedes conectar desde otra red?
# Prueba desde el móvil con datos
Resultados posibles
| Resultado | Significa | Acción |
|---|---|---|
| Ping OK, SSH timeout | SSH o firewall bloqueando | Consola VNC |
| Ping timeout | Red o servidor caído | Panel del proveedor |
| SSH “Connection refused” | sshd no corre | Consola VNC |
| Todo OK pero web caída | Problema de aplicación | SSH normal |
Causas comunes
Por qué un VPS deja de responder
| Causa | Frecuencia | Gravedad |
|---|---|---|
| Firewall mal configurado | Muy común | Fácil |
| Fail2ban te bloqueó | Común | Fácil |
| SSH no está corriendo | Común | Media |
| Disco lleno | Común | Media |
| RAM agotada (OOM) | Común | Media |
| Kernel panic | Poco común | Alta |
| Ataque DDoS | Variable | Alta |
| Hardware del host | Raro | Crítica |
Paso 1: Acceder a la consola de emergencia
Consola VNC/Web
Todos los proveedores ofrecen acceso alternativo:
Avantys / Plesk:
- Panel de control → Tu VPS → Consola VNC
OVH:
- Manager → VPS → KVM
Hetzner:
- Cloud Console → Server → Console
DigitalOcean:
- Droplet → Access → Launch Console
Vultr:
- Server → View Console
Qué es la consola VNC
Es como tener un monitor y teclado conectados directamente al servidor. Funciona aunque:
- SSH esté bloqueado
- El firewall bloquee todo
- La red esté mal configurada
Paso 2: Diagnóstico inicial
Una vez en la consola VNC:
Verificar que el sistema arrancó
# ¿El sistema está corriendo?
uptime
# Si no ves prompt, puede ser kernel panic
# Intenta reiniciar desde el panel del proveedor
Estado general rápido
# Memoria
free -h
# Disco
df -h
# Procesos
top -bn1 | head -20
# Últimos errores
dmesg | tail -30
Paso 3: Problemas de SSH
SSH no corre
# Verificar estado
sudo systemctl status sshd
# Si está parado, iniciarlo
sudo systemctl start sshd
# Si falla, ver por qué
sudo journalctl -u sshd -n 50
# Verificar configuración
sudo sshd -t
Errores comunes de SSH
# Error: "sshd: no hostkeys available"
sudo ssh-keygen -A
sudo systemctl restart sshd
# Error: Permission denied en config
sudo chmod 600 /etc/ssh/sshd_config
sudo chmod 700 /etc/ssh
sudo systemctl restart sshd
Regenerar claves SSH del servidor
sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -A
sudo systemctl restart sshd
Paso 4: Problemas de firewall
UFW bloqueando SSH
# Ver estado
sudo ufw status
# Si SSH no está permitido
sudo ufw allow 22/tcp
# O desactivar temporalmente
sudo ufw disable
# Reconectar por SSH y arreglar
# Luego reactivar
sudo ufw enable
iptables bloqueando
# Ver reglas actuales
sudo iptables -L -n
# Limpiar todas las reglas (¡cuidado!)
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# Ahora puedes reconectar y configurar bien
Fail2ban te bloqueó
# Ver IPs baneadas
sudo fail2ban-client status sshd
# Desbanear tu IP
sudo fail2ban-client set sshd unbanip TU_IP
# O desactivar temporalmente
sudo systemctl stop fail2ban
Paso 5: Disco lleno
Diagnosticar
# Ver uso de disco
df -h
# Si / está al 100%
du -sh /* 2>/dev/null | sort -hr | head -10
Liberar espacio de emergencia
# Limpiar logs antiguos
sudo journalctl --vacuum-time=1d
# Limpiar apt cache
sudo apt clean
# Eliminar kernels antiguos
sudo apt autoremove --purge
# Buscar archivos grandes
sudo find /var/log -name "*.log" -size +50M -exec ls -lh {} \;
# Truncar logs grandes (no eliminar, truncar)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/nginx/access.log
Archivos temporales
# Limpiar /tmp
sudo rm -rf /tmp/*
# Limpiar caché de package managers
sudo rm -rf /var/cache/apt/archives/*
Paso 6: RAM agotada
Diagnosticar OOM
# Ver si OOM killer actuó
dmesg | grep -i "killed process"
# Ver memoria actual
free -h
# Procesos por memoria
ps aux --sort=-%mem | head -10
Solución inmediata
# Matar procesos que consumen mucho
kill -9 PID_DEL_PROCESO
# Reiniciar servicios problemáticos
sudo systemctl restart mysql
sudo systemctl restart php8.2-fpm
# Limpiar caché (temporal)
sync; echo 3 > /proc/sys/vm/drop_caches
Añadir swap de emergencia
# Si no tienes swap
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Paso 7: Servicios caídos
Verificar servicios principales
# Web server
sudo systemctl status nginx
sudo systemctl status apache2
# Base de datos
sudo systemctl status mysql
sudo systemctl status postgresql
# PHP
sudo systemctl status php8.2-fpm
# Ver todos los servicios fallidos
sudo systemctl --failed
Reiniciar servicios
# Reiniciar un servicio
sudo systemctl restart nginx
# Si falla, ver logs
sudo journalctl -u nginx -n 100
# Verificar configuración
sudo nginx -t
Paso 8: Rescue Mode (modo rescate)
Cuando el sistema no arranca, usa rescue mode.
Activar rescue mode
Desde el panel de tu proveedor:
- Detener el VPS
- Activar “Rescue Mode” o “Recovery”
- Iniciar el VPS
- Conectar por SSH con credenciales temporales
Montar el disco
# Ver discos disponibles
lsblk
# Montar el disco del VPS (usualmente /dev/sda1 o /dev/vda1)
mount /dev/vda1 /mnt
# Ahora puedes acceder a tus archivos
ls /mnt
Operaciones en rescue mode
# Editar archivos de configuración
nano /mnt/etc/ssh/sshd_config
# Resetear contraseña de root
chroot /mnt
passwd root
exit
# Arreglar fstab si está mal
nano /mnt/etc/fstab
# Reinstalar grub si no arranca
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
grub-install /dev/vda
update-grub
exit
Salir de rescue mode
- Desmontar:
umount /mnt - En panel: Desactivar rescue mode
- Reiniciar VPS
- Conectar normalmente
Paso 9: Restaurar desde backup
Si nada funciona, restaura un backup.
Desde panel del proveedor
La mayoría ofrecen snapshots/backups:
- Panel → VPS → Backups/Snapshots
- Seleccionar backup reciente
- Restaurar
Desde backup propio
# Si tienes acceso (rescue mode o nuevo VPS)
# Restaurar archivos
tar -xzf /backup/files.tar.gz -C /var/www/
# Restaurar base de datos
mysql -u root -p database < /backup/database.sql
# O PostgreSQL
psql -U user -d database < /backup/database.sql
Paso 10: Si nada funciona
Reinstalar el VPS
Como último recurso:
- Guardar lo que puedas (rescue mode)
- Reinstalar desde el panel del proveedor
- Restaurar configuración y datos desde backups
Contactar soporte
Si sospechas problema de hardware o red del proveedor:
- Abre ticket con toda la información
- Incluye: síntomas, cuándo empezó, qué has probado
- Pide que revisen el host físico
Checklist de emergencia
Cuando el VPS no responde
| Paso | Comando/Acción | ✓ |
|---|---|---|
| 1 | Ping al servidor | ☐ |
| 2 | Probar SSH | ☐ |
| 3 | Probar desde otra red | ☐ |
| 4 | Acceder consola VNC | ☐ |
| 5 | Verificar uptime | ☐ |
| 6 | Verificar disco (df -h) | ☐ |
| 7 | Verificar RAM (free -h) | ☐ |
| 8 | Verificar SSH/firewall | ☐ |
| 9 | Revisar logs (dmesg) | ☐ |
| 10 | Rescue mode si necesario | ☐ |
Prevención
Para evitar que vuelva a pasar
# Monitorización con alertas
# Instalar Netdata
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
# Configurar alertas de disco
# /etc/netdata/health.d/disks.conf
# Backups automáticos
# Cron diario
0 3 * * * /root/scripts/backup.sh
# Fail2ban con whitelist de tu IP
# /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8 TU_IP_FIJA
Preguntas frecuentes
¿Por qué no puedo conectar por SSH pero la web funciona?
Probablemente el firewall bloquea el puerto 22 pero permite 80/443, o fail2ban te ha baneado. Usa la consola VNC para verificar y arreglar.
¿Qué hago si la consola VNC muestra pantalla negra?
Puede ser kernel panic o el sistema no arrancó. Intenta reiniciar desde el panel del proveedor. Si persiste, usa rescue mode.
¿Pierdo mis datos si reinstalo el VPS?
Sí, una reinstalación limpia borra todo. Antes, usa rescue mode para montar el disco y copiar datos importantes.
¿Cómo evito que fail2ban me bloquee?
Añade tu IP fija a la lista blanca (ignoreip) en /etc/fail2ban/jail.local. O usa claves SSH en lugar de contraseñas.
¿Cuánto tiempo debo esperar antes de preocuparme?
Si ping falla durante más de 5 minutos, hay problema real. Picos cortos pueden ser mantenimiento del proveedor.
Nuestra recomendación
Para emergencias:
- No entres en pánico
- Sigue el checklist sistemáticamente
- Usa consola VNC antes de rescue mode
- Documenta qué haces
Para prevenir:
- Monitorización con alertas
- Backups automáticos probados
- IP fija en whitelist de fail2ban
¿Emergencias frecuentes? La administración gestionada de Avantys incluye monitorización 24/7 y respuesta a incidencias.
Conclusión
Un VPS que no responde asusta, pero rara vez es irrecuperable. La consola VNC es tu mejor aliada: te da acceso aunque todo lo demás falle.
La clave es actuar sistemáticamente y no hacer cambios sin entender qué estás cambiando.
¿Necesitas un VPS con soporte de emergencia? Explora los VPS de Avantys con consola VNC y soporte técnico incluido.
¿Quieres que lo hagamos por ti?
En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.