Comandos Linux para administrar un VPS: lo esencial
Los comandos esenciales de servidor son un tema esencial para cualquiera que administre un servidor virtual privado. Tanto si acabas de empezar con tu primer VPS como si ya tienes experiencia, dominar los comandos esenciales de servidor marca la diferencia entre una administración eficiente del servidor y una búsqueda interminable de soluciones. En esta guía repasamos todos los comandos esenciales que necesitas para administrar tu VPS de forma profesional.
¿Por qué es esencial conocer los comandos esenciales de servidor?
A diferencia del hosting compartido, en el que tu proveedor de hosting se encarga de la administración del servidor, con un VPS eres tú el responsable de la administración. Esto exige conocimientos básicos de comandos de Linux para VPS para mantener tu servidor, resolver problemas y aplicar medidas de seguridad. Sin estos conocimientos corres el riesgo de sufrir tiempo de inactividad, problemas de seguridad y un rendimiento deficiente.
Diferencia entre la administración de hosting compartido y la de un VPS
| Aspecto | Hosting compartido | VPS (no administrado) |
|---|---|---|
| Instalación de software | Limitada, a través del panel | Control total desde la línea de comandos |
| Actualizaciones | Las hace el proveedor | Las haces tú mismo desde la terminal |
| Seguridad | Básica, a cargo del proveedor | Responsabilidad totalmente tuya |
| Resolución de problemas | A través de tickets de soporte | Análisis propio con logs y comandos |
| Ajuste del rendimiento | No es posible | Control total de la configuración |
Comandos básicos para la gestión de archivos
Los comandos de Linux para VPS más usados son los que sirven para gestionar archivos y carpetas. Estos son los esenciales que todo administrador de VPS debe conocer:
Navegación y listado de archivos
- pwd: muestra la carpeta actual en la que te encuentras (print working directory)
- ls: lista todos los archivos y carpetas; usa ls -la para ver los detalles, incluidos los archivos ocultos
- cd: cambia de carpeta; cd .. sube un nivel y cd ~ va a tu directorio home
- find: busca archivos por nombre, tamaño, fecha o tipo
- locate: buscador rápido de archivos mediante una base de datos indexada
- tree: muestra la estructura de carpetas de forma visual, como un diagrama de árbol
Editar y mover archivos
- cp: copia archivos o carpetas (usa -r para copiar carpetas de forma recursiva)
- mv: mueve o renombra archivos y carpetas
- rm: elimina archivos (usa -rf para carpetas y ten muchísimo cuidado)
- mkdir: crea una carpeta nueva (-p para carpetas anidadas)
- touch: crea un archivo nuevo vacío
- chmod: cambia los permisos de un archivo (p. ej., chmod 755 archivo)
- chown: cambia el propietario de un archivo o carpeta
Ver y editar archivos
- cat: muestra el contenido completo de un archivo
- less: consulta archivos con desplazamiento (útil para archivos grandes)
- head: muestra las primeras líneas de un archivo (10 por defecto)
- tail: muestra las últimas líneas; tail -f sigue las actualizaciones en tiempo real (ideal para logs)
- nano: editor de texto sencillo para principiantes
- vim: editor de texto potente para usuarios avanzados
- grep: busca texto o patrones concretos en los archivos
Gestión de usuarios y permisos
La gestión de usuarios y permisos es una parte crucial de los conocimientos de comandos de Linux para VPS, sobre todo para la seguridad de tu servidor.
Comandos de gestión de usuarios
- adduser: crea un usuario nuevo con su directorio home y su configuración
- usermod: modifica los ajustes de un usuario (p. ej., añadirlo a un grupo: usermod -aG sudo usuario)
- passwd: cambia la contraseña de un usuario
- deluser: elimina un usuario del sistema
- groups: muestra los grupos a los que pertenece un usuario
- su: cambia a otro usuario (su - para el entorno completo)
- sudo: ejecuta un comando con permisos de root
Información del sistema y monitorización
Como administrador de VPS, necesitas saber cómo rinde tu servidor. Estos comandos de Linux para VPS te dan una visión del estado del sistema.
Consultar la información del sistema
- uname -a: muestra la información completa del sistema (kernel, arquitectura, hostname)
- hostname: muestra o cambia el nombre del servidor
- uptime: muestra cuánto tiempo lleva en marcha el servidor y la carga media
- df -h: muestra el uso de disco por partición en un formato legible
- du -sh: muestra el tamaño de archivos y carpetas
- free -h: muestra el uso de RAM (total, usada, libre, caché)
- lscpu: muestra información de la CPU
Monitorización de procesos
| Comando | Función | Uso |
|---|---|---|
| top | Vista de procesos en tiempo real | Resumen rápido del uso de CPU/RAM |
| htop | Versión mejorada de top | Gestión interactiva de procesos con colores |
| ps aux | Lista todos los procesos | Instantánea de los procesos en ejecución |
| kill | Detiene un proceso por su PID | kill -9 PID para forzar la detención |
| nice/renice | Prioridad de los procesos | Ajuste de la prioridad de CPU |
| lsof | Archivos abiertos por proceso | Diagnóstico de bloqueos de archivos |
Comandos de administración de red
Los comandos de Linux para VPS relacionados con la red son imprescindibles para administrar servidores web, diagnosticar problemas de conexión y configurar los ajustes de red.
Diagnóstico de red
- ip addr: muestra todas las interfaces de red y sus direcciones IP
- ping: comprueba la conexión con otro sistema
- traceroute: muestra la ruta que siguen los paquetes hasta un destino
- nslookup/dig: ejecuta consultas DNS para diagnosticar problemas de DNS
- netstat -tulpn: muestra todos los puertos abiertos y los procesos que escuchan en ellos
- ss -tulpn: sustituto más moderno de netstat
- curl: realiza solicitudes HTTP (útil para probar webs)
- wget: descarga archivos de internet
Administración del firewall
- ufw status: muestra las reglas actuales del firewall
- ufw allow 80: abre el puerto 80 para el tráfico HTTP
- ufw deny: bloquea un puerto o una dirección IP concretos
- ufw enable/disable: activa o desactiva el firewall
- iptables -L: muestra las reglas de iptables subyacentes
Comandos de gestión de paquetes
Instalar, actualizar y eliminar software es una parte central de los conocimientos de comandos de Linux para VPS. Los comandos varían según la distribución.
Ubuntu/Debian (APT)
- apt update: actualiza las listas de paquetes
- apt upgrade: instala las actualizaciones disponibles
- apt install [paquete]: instala un paquete nuevo
- apt remove [paquete]: elimina un paquete
- apt autoremove: elimina las dependencias que ya no se usan
- apt search [term]: busca paquetes disponibles
CentOS/AlmaLinux (DNF/YUM)
- dnf update: actualiza todos los paquetes
- dnf install [paquete]: instala un paquete
- dnf remove [paquete]: elimina un paquete
- dnf search [term]: busca paquetes
Gestión de servicios con systemd
Las distribuciones modernas de Linux usan systemd para gestionar los servicios. Estos comandos de Linux para VPS son esenciales para iniciar, detener y monitorizar servidores web, bases de datos y otros servicios.
Comandos systemctl más importantes
- systemctl start [service]: inicia un servicio
- systemctl stop [service]: detiene un servicio
- systemctl restart [service]: reinicia un servicio
- systemctl status [service]: muestra el estado de un servicio
- systemctl enable [service]: arranca automáticamente al iniciar el sistema
- systemctl disable [service]: evita el arranque automático
- journalctl -u [service]: consulta los logs de un servicio concreto
Servicios habituales en un servidor web
| Servicio | Descripción | Puerto por defecto |
|---|---|---|
| nginx / apache2 | Servidor web | 80, 443 |
| mysql / mariadb | Servidor de bases de datos | 3306 |
| php-fpm | Procesador de PHP | 9000 (socket) |
| sshd | Servidor SSH | 22 |
| fail2ban | Prevención de intrusiones | No aplica |
| postfix | Servidor de correo | 25, 587 |
Análisis de archivos de log
Los logs son tu principal fuente de información al diagnosticar problemas. Dominar los comandos de Linux para VPS relacionados con los logs es imprescindible para resolver incidencias.
Ubicaciones de log importantes
- /var/log/syslog: log general del sistema
- /var/log/auth.log: eventos de autenticación y de seguridad
- /var/log/nginx/: logs de acceso y de errores de Nginx
- /var/log/apache2/: logs de acceso y de errores de Apache
- /var/log/mysql/: logs de MySQL/MariaDB
- /var/log/fail2ban.log: log de actividad de Fail2ban
Analizar logs con comandos
- tail -f /var/log/syslog: sigue el syslog en tiempo real
- grep "error" /var/log/nginx/error.log: busca errores
- awk '{print $1}' access.log | sort | uniq -c | sort -rn | head: las 10 direcciones IP principales del log de acceso
- journalctl --since "1 hour ago": muestra los logs de la última hora
- zcat /var/log/syslog.2.gz | grep "keyword": busca en logs antiguos comprimidos
Comandos de copia de seguridad y compresión
Hacer copias de seguridad es crucial para tu estrategia de copia de seguridad de la web. Estos son los comandos de Linux para VPS que necesitas para ello:
- tar -czf backup.tar.gz /ruta/a/carpeta/: crea un archivo comprimido
- tar -xzf backup.tar.gz: descomprime un archivo
- rsync -avz origen/ destino/: sincroniza archivos con copia incremental
- scp archivo user@server:/ruta/: copia archivos a otro servidor mediante SSH
- mysqldump -u user -p database > backup.sql: crea una copia de seguridad de la base de datos
- mysql -u user -p database < backup.sql (restaura una copia de seguridad de la base de datos)
Consejos para una administración eficiente del VPS
Para terminar, algunos consejos para que tu administración diaria del VPS sea más eficiente con los comandos de Linux para VPS:
Alias y atajos
Crea alias para los comandos que uses con frecuencia en tu archivo .bashrc. Algunos ejemplos son un alias para ver rápidamente la carga del servidor, reiniciar tu servidor web o comprobar las actualizaciones disponibles. Esto ahorra tiempo y reduce los errores de escritura.
Crontab para la automatización
Usa crontab para automatizar tareas como las copias de seguridad diarias, la rotación de logs y los análisis del sistema. Consulta nuestra guía sobre cómo configurar cronjobs para saber más sobre la automatización de tareas.
Dominar los comandos de Linux para VPS es una inversión que se amortiza rápido. Con los comandos de esta guía tienes una base sólida para administrar tu VPS de forma profesional. A medida que ganes experiencia, descubrirás que la línea de comandos es una herramienta potente y eficiente de la que no querrás prescindir. ¿Te planteas contratar un VPS? Consulta nuestra comparativa de alquiler de VPS: precios y opciones.
Consejos avanzados para la administración diaria del VPS
Además de los comandos básicos, existen técnicas avanzadas que hacen más eficiente tu trabajo diario con los comandos de Linux para VPS.
Shell scripting para la automatización
Los scripts de shell son herramientas potentes para automatizar tareas repetitivas en tu VPS. Al combinar varios comandos de Linux para VPS en un script, puedes ejecutar tareas complejas con un solo comando. Empieza con scripts sencillos para tareas de copia de seguridad y avanza poco a poco hacia automatizaciones más avanzadas. Usa variables, lógica condicional y bucles para que tus scripts sean flexibles y reutilizables.
Tmux y screen: gestionar sesiones
Tmux y screen son multiplexores de terminal que te permiten gestionar varias sesiones de terminal dentro de una sola conexión SSH. Esto es especialmente útil para tareas de larga duración: si tu conexión SSH se interrumpe de forma inesperada, tus procesos siguen ejecutándose en la sesión de tmux. Más tarde puedes volver a conectarte y continuar exactamente donde lo dejaste. Es imprescindible para la administración remota de servidores.
Pipelines y redirección de la salida
La potencia de Linux está en combinar comandos mediante pipes y redirección. Con el símbolo de pipe puedes usar la salida de un comando como entrada del siguiente. La redirección de la salida te permite guardar resultados en archivos para analizarlos después. Estas técnicas permiten construir análisis de datos e informes del sistema complejos a partir de bloques sencillos.
Comandos de Linux para VPS: gestión avanzada de archivos
Una gestión eficaz de archivos desde la línea de comandos es una habilidad clave para los administradores de VPS. Con los comandos de Linux para VPS adecuados puedes encontrar, analizar y gestionar archivos rápidamente, sin interfaz gráfica.
Comandos esenciales de gestión de archivos
| Comando | Función | Ejemplo | Aplicación |
|---|---|---|---|
| find | Buscar archivos según criterios | find / -name "*.log" -mtime +30 | Encontrar logs antiguos |
| du | Uso de disco por directorio | du -sh /var/* | Analizar el espacio en disco |
| rsync | Sincronizar archivos | rsync -avz /origen/ /destino/ | Copias de seguridad y migraciones |
| tar | Archivar archivos | tar -czf backup.tar.gz /data/ | Compresión y archivado |
| chmod/chown | Cambiar permisos | chmod 644 archivo.txt | Seguridad y acceso |
| ln | Crear enlaces simbólicos | ln -s /destino /enlace | Gestión de la configuración |
El comando find es especialmente potente para administrar un VPS. Combínalo con exec para ejecutar acciones sobre los archivos encontrados, como eliminar archivos temporales de más de 7 días. Esto ayuda a mantener tu VPS limpio y con buen rendimiento.
Comandos de Linux para VPS: diagnóstico de red
Cuando hay problemas con el servidor, el diagnóstico de red suele ser la clave para encontrar la causa. Con estos comandos de Linux puedes identificar y resolver rápidamente problemas de red en tu VPS.
- netstat -tlnp: muestra todos los puertos en escucha y los procesos que los usan. Esencial para comprobar que los servicios se ejecutan en los puertos esperados.
- ss -tlnp: sustituto más moderno de netstat, con una salida más rápida en sistemas con muchas conexiones.
- tcpdump: captura el tráfico de red para su análisis. Útil para depurar problemas de conexión o investigar tráfico sospechoso.
- dig y nslookup: prueban la resolución DNS para diagnosticar problemas de dominio. Comprueba si tu dominio apunta a la dirección IP correcta.
- traceroute: sigue la ruta de los paquetes de red hasta un destino. Identifica dónde se producen retrasos o bloqueos.
- iftop: monitor de ancho de banda en tiempo real por conexión. Imprescindible para ver qué conexiones consumen más ancho de banda.
Estos comandos también son útiles al configurar la monitorización de servidores. Si ejecutas diagnósticos de red con regularidad, puedes detectar los problemas antes de que lleguen a los visitantes de tu web.
Automatización con scripts Bash en tu VPS
Realizar tareas repetitivas a mano es propenso a errores y consume mucho tiempo. Con scripts Bash automatizas las tareas habituales de administración del VPS y ahorras un tiempo valioso.
Automatizaciones habituales para la administración de un VPS:
- Copias de seguridad automáticas: un script que hace cada día una copia de seguridad de tu base de datos y tus archivos en una ubicación externa.
- Rotación y limpieza de logs: elimina automáticamente los archivos de log antiguos para mantener espacio libre en disco.
- Comprobaciones de estado: comprueba que los servicios se estén ejecutando y los reinicia automáticamente si fallan.
- Análisis de seguridad: análisis diarios en busca de rootkits, malware y modificaciones no autorizadas de archivos.
- Renovación del certificado SSL: renovación automática de los certificados de Let's Encrypt con cron jobs.
Usa cron para programar tareas automatizadas. Edita el crontab con crontab -e y añade tus tareas en el formato estándar de cron. No olvides escribir la salida de tus scripts en un archivo de log para poder analizar los problemas. Combina tus scripts con la checklist de seguridad del VPS para una administración totalmente automatizada y segura de tu servidor.
Comandos de Linux para VPS: gestión de procesos y resolución de problemas
La gestión de procesos es una tarea diaria en la administración de un VPS. Con los comandos de Linux adecuados puedes averiguar rápidamente qué procesos consumen recursos, reiniciar servicios bloqueados y vigilar el estado general del servidor.
Los comandos top y htop muestran en tiempo real el uso de CPU y de memoria por proceso. Htop es la variante más fácil de usar, con colores y soporte para el ratón, pero no siempre viene preinstalado. Con ps aux listas todos los procesos en ejecución y, combinado con grep, puedes filtrar procesos concretos. El comando kill envía señales a los procesos: SIGTERM (15) pide a un proceso que se cierre de forma ordenada, mientras que SIGKILL (9) lo termina por la fuerza. Usa siempre primero SIGTERM y SIGKILL solo como último recurso.
Systemd es el sistema de inicio de las distribuciones modernas de Linux y gestiona todos los servicios de tu VPS. Con systemctl start, stop, restart y status gestionas los servicios. Con journalctl consultas los logs de servicios concretos. Combina estos comandos con la automatización mediante scripts Bash que hemos visto antes para montar un proceso de administración robusto.
Comandos de Linux para VPS: gestión de discos y optimización del espacio
El espacio en disco es un recurso finito en tu VPS, y los discos que se llenan de forma inesperada provocan caídas y pérdida de datos. Con estos comandos de Linux para VPS mantienes bajo control tu espacio en disco y evitas problemas.
El comando df -h muestra el uso de disco por partición en un formato legible. Usa du -sh junto con directorios concretos para encontrar lo que más espacio ocupa. Los archivos de log suelen ser los culpables cuando los discos se llenan; revisa el directorio /var/log con regularidad. El comando ncdu (NCurses Disk Usage) ofrece una interfaz interactiva para navegar por tu sistema de archivos e identificar rápidamente archivos y directorios grandes. Configura alertas cuando el uso de disco supere el 80 %, para tener tiempo de sobra para limpiar o ampliar la capacidad de almacenamiento antes de que se convierta en un problema.
Comandos de Linux para VPS: comandos de seguridad
Además de la gestión de archivos y el diagnóstico de red, hay comandos de Linux específicos que son esenciales para la seguridad de tu VPS. Con ellos monitorizas la seguridad de tu servidor y detectas actividad sospechosa.
El comando last muestra un resumen de todos los intentos de inicio de sesión recientes en tu servidor, con hora, IP de origen y duración de la sesión. Con lastb consultas los intentos fallidos, algo útil para identificar ataques de fuerza bruta. El comando who muestra quién ha iniciado sesión en el servidor en este momento. Usa w para obtener una vista más completa que también muestra qué está haciendo cada usuario conectado.
Para comprobar los puertos abiertos y los servicios en escucha, usa ss -tlnp o el antiguo netstat -tlnp. Compara la salida con regularidad con la configuración que esperas: los puertos abiertos inesperados o los servicios desconocidos son una señal de alarma. El comando lsof -i muestra todas las conexiones de red por proceso, lo que ayuda a identificar conexiones salientes sospechosas. Integra estos comandos de seguridad en tu rutina diaria o automatízalos con scripts que generen cada día un informe de seguridad y te lo envíen por correo.