Hosting Equipo Avantys 8 min

Errores Comunes en VPS: Soluciones Rápidas

Los 25 errores más comunes en VPS Linux y cómo solucionarlos. Permission denied, disk full, connection refused, 502 Bad Gateway y más.

// Compartir

Errores Comunes en VPS: Soluciones Rápidas
Errores comunes en VPS y soluciones

“Permission denied”. “No space left on device”. “502 Bad Gateway”. Si administras un VPS, estos errores te sonarán. La buena noticia: la mayoría tienen soluciones rápidas.

Esta guía es tu referencia rápida para los errores más comunes y cómo arreglarlos en segundos.

Errores de permisos

Categorías de errores en VPS

Permission denied

# Error
bash: ./script.sh: Permission denied

Causa: El archivo no tiene permisos de ejecución.

Solución:

chmod +x script.sh
./script.sh

Permission denied (publickey)

# Error SSH
Permission denied (publickey)

Causas y soluciones:

# 1. Clave SSH incorrecta
ssh -i ~/.ssh/clave_correcta user@servidor

# 2. Permisos de clave incorrectos
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

# 3. Clave no añadida al agente
ssh-add ~/.ssh/id_rsa

# 4. Clave no en authorized_keys del servidor
# Añadir manualmente o usar:
ssh-copy-id user@servidor

Operation not permitted

# Error
rm: cannot remove 'archivo': Operation not permitted

Causa: Archivo con atributo inmutable.

Solución:

# Ver atributos
lsattr archivo

# Quitar inmutable
sudo chattr -i archivo

# Ahora sí puedes eliminar
rm archivo

Cannot open file: Permission denied

# Error de aplicación/web
Cannot open '/var/www/site/uploads': Permission denied

Solución:

# Dar permisos al usuario web
sudo chown -R www-data:www-data /var/www/site/uploads
sudo chmod -R 755 /var/www/site/uploads

# Para carpetas de subida
sudo chmod -R 775 /var/www/site/uploads

Errores de disco

No space left on device

# Error
No space left on device

Diagnóstico:

# Ver uso de disco
df -h

# Encontrar qué ocupa más
du -sh /* 2>/dev/null | sort -hr | head -10

Soluciones rápidas:

# Limpiar logs
sudo journalctl --vacuum-time=3d

# Limpiar apt
sudo apt clean
sudo apt autoremove

# Encontrar archivos grandes
find / -type f -size +100M 2>/dev/null | head -20

# Truncar logs grandes (no borrar)
sudo truncate -s 0 /var/log/syslog

Disk quota exceeded

# Error
Disk quota exceeded

Diagnóstico:

# Ver quota del usuario
quota -s

# Ver uso real
du -sh ~

Solución: Liberar espacio o pedir aumento de quota al admin.

Read-only file system

# Error
Read-only file system

Causa: Disco montado en solo lectura (posible error de disco).

Solución:

# Ver estado de montaje
mount | grep " / "

# Remontar con escritura
sudo mount -o remount,rw /

# Si persiste, verificar errores
sudo fsck -y /dev/vda1  # En rescue mode

Errores de red/conexión

Connection refused

# Error
ssh: connect to host X port 22: Connection refused

Causas y soluciones:

# 1. Servicio no corriendo
sudo systemctl status sshd
sudo systemctl start sshd

# 2. Puerto incorrecto (verificar config)
grep Port /etc/ssh/sshd_config

# 3. Firewall bloqueando
sudo ufw status
sudo ufw allow 22/tcp

Connection timed out

# Error
ssh: connect to host X: Connection timed out

Causas:

  • Firewall del proveedor
  • IP incorrecta
  • Servidor caído

Diagnóstico:

# Verificar IP
ping IP_SERVIDOR

# Verificar puerto
nc -zv IP_SERVIDOR 22 -w 5

# Usar consola VNC del proveedor

Name or service not known

# Error
Could not resolve hostname: Name or service not known

Solución:

# Verificar DNS
cat /etc/resolv.conf

# Usar DNS públicos
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf

# Permanente en netplan (Ubuntu)
sudo nano /etc/netplan/01-netcfg.yaml
# Añadir:
#   nameservers:
#     addresses: [8.8.8.8, 1.1.1.1]
sudo netplan apply

Address already in use

# Error
bind: Address already in use

Diagnóstico:

# Ver qué usa el puerto
sudo lsof -i :80
sudo ss -tlnp | grep :80

Solución:

# Matar proceso que usa el puerto
sudo kill -9 PID

# O cambiar puerto en tu aplicación

Errores de servicios web

Errores web en servidor

502 Bad Gateway

Causa: El proxy (Nginx) no puede conectar al backend.

Diagnóstico:

# Ver logs de Nginx
sudo tail -50 /var/log/nginx/error.log

# Verificar backend
sudo systemctl status php8.2-fpm
curl localhost:3000  # Si es Node/Python

Soluciones:

# 1. Reiniciar backend
sudo systemctl restart php8.2-fpm

# 2. Verificar socket
ls -la /run/php/php8.2-fpm.sock

# 3. Aumentar timeout en Nginx
# En location {}:
proxy_read_timeout 300;
fastcgi_read_timeout 300;

sudo nginx -t && sudo systemctl reload nginx

503 Service Unavailable

Causa: Servidor sobrecargado o backend caído.

Diagnóstico:

# Ver carga
uptime
htop

# Ver servicios
sudo systemctl status nginx php8.2-fpm mysql

Soluciones:

# 1. Reiniciar servicios
sudo systemctl restart nginx php8.2-fpm

# 2. Matar procesos desbocados
kill -9 $(pgrep -f "proceso_pesado")

# 3. Escalar recursos (temporal)
# Aumentar workers en php-fpm

504 Gateway Timeout

Causa: El backend tarda demasiado en responder.

Soluciones:

# 1. Aumentar timeouts en Nginx
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;

# 2. Optimizar queries lentas
# Ver slow query log de MySQL

# 3. Añadir caché
# Redis, Varnish, o caché de aplicación

500 Internal Server Error

Diagnóstico:

# Ver logs de aplicación
sudo tail -100 /var/log/nginx/error.log
sudo tail -100 /var/log/php8.2-fpm.log
sudo tail -100 /var/www/site/storage/logs/laravel.log

Causas comunes:

# 1. Permisos incorrectos
sudo chown -R www-data:www-data /var/www/site
sudo chmod -R 755 /var/www/site
sudo chmod -R 775 /var/www/site/storage

# 2. .htaccess con errores
# Renombrar temporalmente
mv .htaccess .htaccess.bak

# 3. Error de PHP
# Habilitar display_errors temporalmente

Errores de base de datos

Can’t connect to MySQL server

# Error
ERROR 2002 (HY000): Can't connect to local MySQL server through socket

Soluciones:

# 1. Verificar si corre
sudo systemctl status mysql

# 2. Iniciar si está parado
sudo systemctl start mysql

# 3. Verificar socket
ls -la /var/run/mysqld/mysqld.sock

# 4. Ver logs
sudo tail -50 /var/log/mysql/error.log

Access denied for user

# Error
Access denied for user 'root'@'localhost'

Solución - Resetear contraseña:

# 1. Parar MySQL
sudo systemctl stop mysql

# 2. Iniciar sin autenticación
sudo mysqld_safe --skip-grant-tables &

# 3. Conectar y cambiar contraseña
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'nueva_contraseña';
EXIT;

# 4. Reiniciar normal
sudo killall mysqld
sudo systemctl start mysql

Too many connections

# Error
Too many connections

Solución:

# 1. Ver conexiones actuales
mysql -e "SHOW PROCESSLIST;"

# 2. Aumentar límite (temporal)
mysql -e "SET GLOBAL max_connections = 200;"

# 3. Permanente en my.cnf
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Añadir:
max_connections = 200

sudo systemctl restart mysql

Errores de memoria

Cannot allocate memory

# Error
Cannot allocate memory

Diagnóstico:

free -h
ps aux --sort=-%mem | head -10

Soluciones:

# 1. Matar procesos que consumen mucho
kill -9 PID

# 2. Reiniciar servicios pesados
sudo systemctl restart mysql php8.2-fpm

# 3. Añadir swap
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

OOM Killer

# En logs
Out of memory: Kill process XXX

Ver qué mató:

dmesg | grep -i "killed process"

Prevención:

# Limitar memoria por servicio
# /etc/systemd/system/mysql.service.d/override.conf
[Service]
MemoryLimit=1G

Errores de SSL/HTTPS

Certificate has expired

Solución:

# Renovar con Certbot
sudo certbot renew

# Forzar renovación
sudo certbot renew --force-renewal

# Verificar auto-renovación
sudo certbot renew --dry-run

SSL_ERROR_RX_RECORD_TOO_LONG

Causa: Nginx sirviendo HTTP en puerto HTTPS.

Solución:

# Verificar configuración
sudo nginx -t

# Asegurar que el bloque HTTPS tiene:
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;

Errores de procesos

Proceso zombie

# Ver zombies
ps aux | grep Z

Solución:

# Matar proceso padre
kill -9 PPID

# O reiniciar servicio
sudo systemctl restart servicio

Too many open files

# Error
Too many open files

Solución:

# Ver límites actuales
ulimit -n

# Aumentar temporalmente
ulimit -n 65535

# Permanente
sudo nano /etc/security/limits.conf
# Añadir:
* soft nofile 65535
* hard nofile 65535

# Para systemd services
# En el unit file:
LimitNOFILE=65535

Referencia rápida

Errores más comunes y solución en una línea

ErrorSolución rápida
Permission denied (archivo)chmod +x archivo
Permission denied (SSH)chmod 600 ~/.ssh/id_rsa
No space leftsudo journalctl --vacuum-time=1d
Connection refusedsudo systemctl start sshd
502 Bad Gatewaysudo systemctl restart php8.2-fpm
503 Service Unavailablesudo systemctl restart nginx
MySQL can’t connectsudo systemctl start mysql
Cannot allocate memorysudo swapon /swapfile
Certificate expiredsudo certbot renew
Too many connectionsSET GLOBAL max_connections=200;

Preguntas frecuentes

¿Cómo sé qué error tengo exactamente?

Revisa los logs: /var/log/syslog para sistema, /var/log/nginx/error.log para web, journalctl -u servicio para servicios específicos.

¿Por qué un error aparece de repente sin cambiar nada?

Causas comunes: disco lleno por logs, certificado SSL expirado, límites de conexiones alcanzados, o actualizaciones automáticas del sistema.

¿Cómo prevengo estos errores?

Monitorización con alertas, rotación de logs, renovación automática de SSL, y revisiones periódicas de recursos (disco, RAM, conexiones).

¿Debo reiniciar el VPS completo para arreglar errores?

Rara vez. La mayoría se arreglan reiniciando solo el servicio afectado. Reiniciar el VPS completo es último recurso.

¿Cómo busco un error específico en Google?

Copia el mensaje exacto entre comillas, añade 'ubuntu' o 'nginx' según contexto. Ejemplo: "502 Bad Gateway" nginx php-fpm

Nuestra recomendación

Para resolver errores rápido:

  1. Lee el mensaje de error completo
  2. Revisa los logs relevantes
  3. Busca la solución específica
  4. Aplica y verifica

Para prevenir errores:

  • Monitorización con alertas
  • Logs rotados y limitados
  • Recursos con margen

¿Errores que no puedes resolver? La administración gestionada de Avantys incluye resolución de incidencias 24/7.


Conclusión

La mayoría de errores en VPS tienen soluciones conocidas y rápidas. La clave es leer el mensaje de error con atención y revisar los logs correctos.

Con esta guía como referencia, resolverás el 90% de los problemas en minutos.

¿Necesitas un VPS con soporte técnico? Explora los VPS de Avantys con asistencia incluida.


¿Quieres que lo hagamos por ti?

En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.

Hablar con Avantys
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.