Como usar tmux en un VPS Linux
Aprende a instalar y usar tmux en tu VPS Linux para sesiones de terminal persistentes, paneles divididos y proteccion ante desconexiones SSH. Cubre Debian 12 y Ubuntu 24.04.
Te conectas por SSH a tu VPS, lanzas una migracion de base de datos larga y se cae el Wi-Fi. El proceso muere. Tu trabajo se pierde.
tmux resuelve esto. Ejecuta tus sesiones de terminal en el propio servidor, independientes de tu conexion SSH. Desconectate, reconectate y retoma exactamente donde lo dejaste.
Este tutorial cubre tmux desde la instalacion hasta layouts multi-panel con scripts. Todos los comandos funcionan en Debian 12 o Ubuntu 24.04.
Que es tmux y por que usarlo en un VPS?
tmux es un terminal multiplexer (multiplexor de terminal). Te permite ejecutar varias sesiones de terminal dentro de una sola conexion SSH, y esas sesiones persisten en el servidor incluso cuando te desconectas.
tmux organiza tu trabajo en tres niveles:
- Sessions (sesiones) son el contenedor de nivel superior. Cada sesion es un espacio de trabajo independiente. Puedes desconectarte de una sesion y volver a ella despues.
- Windows (ventanas) viven dentro de las sesiones. Piensa en ellas como pestanas. Cada ventana ejecuta su propio shell.
- Panes (paneles) dividen una ventana en varios rectangulos, cada uno ejecutando su propio comando.
Session "deploy"
├── Window 0: "editor"
│ ├── Pane 0: vim
│ └── Pane 1: file watcher
└── Window 1: "logs"
└── Pane 0: journalctl -f
En un VPS, tmux te da tres cosas que importan:
- Proteccion ante desconexiones SSH. Tus procesos siguen ejecutandose cuando la conexion se cae. Reconectate y vuelve a la sesion.
- Flujos de trabajo multi-panel. Monitoriza logs en un panel, ejecuta comandos en otro, edita archivos en un tercero. Todo dentro de una sola conexion SSH.
- Persistencia de sesiones. Deja una sesion ejecutandose durante dias. Desconectate al final del dia, reconectate manana.
Como instalar tmux en Debian 12 y Ubuntu 24.04?
tmux esta en los repositorios por defecto tanto de Debian 12 como de Ubuntu 24.04. Un solo comando lo instala.
sudo apt update && sudo apt install -y tmux
Verifica la instalacion:
tmux -V
Salida esperada en Debian 12:
tmux 3.3a
Salida esperada en Ubuntu 24.04:
tmux 3.4
Atencion: el numero de version confirma que tmux se instalo desde los repositorios oficiales. Si no ves nada o aparece "command not found", la instalacion fallo. Revisa la salida de apt en busca de errores.
Como crear y gestionar sesiones de tmux?
Una sesion de tmux es un espacio de trabajo persistente que vive en el servidor. Inicia una, ejecuta tus comandos y permanece activa incluso si cierras tu terminal.
Crear sesiones
Inicia una nueva sesion con nombre:
tmux new-session -s deploy
Esto crea una sesion llamada "deploy" y te conecta a ella. Veras una barra de estado verde en la parte inferior de tu terminal. Esa barra de estado es tmux confirmando que estas dentro de una sesion.
Para crear una sesion sin conectarte a ella (util en scripts):
tmux new-session -d -s background
Verifica que existe:
tmux list-sessions
background: 1 windows (created Thu Mar 19 10:00:00 2026)
Como desconectarme de una sesion tmux y reconectarme despues?
Este es el flujo de trabajo principal en un VPS. Desconectate de una sesion para liberar tu terminal y reconectate despues para retomar tu trabajo. La sesion sigue ejecutandose en el servidor.
Para desconectarte, pulsa la tecla prefijo seguida de d:
Ctrl-b d
La tecla prefijo es Ctrl-b por defecto. Pulsa Ctrl y b juntos, suelta ambos y luego pulsa d. Todos los atajos de tmux funcionan asi: primero el prefijo, despues la tecla de accion.
Tu terminal vuelve al shell normal. La sesion sigue ejecutandose.
Para reconectarte:
tmux attach -t deploy
Si solo tienes una sesion, puedes omitir el nombre:
tmux attach
Verifica que sesiones estan ejecutandose:
tmux list-sessions
deploy: 1 windows (created Thu Mar 19 10:00:00 2026) (attached)
background: 1 windows (created Thu Mar 19 10:05:00 2026)
La etiqueta (attached) te indica a que sesion esta conectada tu terminal.
Eliminar sesiones
Cuando termines con una sesion, destruyela:
tmux kill-session -t background
Verifica que ya no existe:
tmux list-sessions
Para eliminar todas las sesiones y detener el servidor tmux por completo:
tmux kill-server
Renombrar sesiones
Desde dentro de una sesion, pulsa:
Ctrl-b $
Escribe el nuevo nombre y pulsa Enter. Util cuando iniciaste una sesion sin nombre y tmux le asigno un numero.
Como usar ventanas de tmux para organizar tareas?
Las ventanas son pestanas dentro de una sesion. Cada ventana ejecuta su propio shell. Usalas para separar tareas que no necesitan estar visibles al mismo tiempo.
Crea una nueva ventana:
Ctrl-b c
La barra de estado se actualiza para mostrar la nueva ventana. El asterisco (*) marca la ventana activa:
[deploy] 0:bash 1:bash*
Cambiar entre ventanas
Por numero:
Ctrl-b 0 # Go to window 0
Ctrl-b 1 # Go to window 1
Ciclando:
Ctrl-b n # Next window
Ctrl-b p # Previous window
Renombrar una ventana
Ctrl-b ,
Escribe un nombre descriptivo como "logs" o "editor" y pulsa Enter. Las ventanas con nombre hacen que la barra de estado sea legible cuando tienes varias abiertas.
Cerrar una ventana
Escribe exit en el shell, o pulsa:
Ctrl-b &
tmux pide confirmacion antes de cerrar.
Como dividir el terminal en paneles?
Los paneles dividen una ventana en varios terminales visibles al mismo tiempo. Aqui es donde tmux brilla para la administracion de VPS: observa logs en un panel mientras ejecutas comandos en otro.
Dividir el panel actual horizontalmente (arriba y abajo):
Ctrl-b "
Dividir el panel actual verticalmente (izquierda y derecha):
Ctrl-b %
Despues de dividir, tienes dos paneles. El borde verde resalta el panel activo.
Como navegar y redimensionar paneles en tmux?
Muevete entre paneles con las teclas de flechas:
Ctrl-b ↑ # Move to pane above
Ctrl-b ↓ # Move to pane below
Ctrl-b ← # Move to pane left
Ctrl-b → # Move to pane right
Redimensiona paneles manteniendo el prefijo y pulsando las teclas de flechas:
Ctrl-b Ctrl-↑ # Resize pane up
Ctrl-b Ctrl-↓ # Resize pane down
Ctrl-b Ctrl-← # Resize pane left
Ctrl-b Ctrl-→ # Resize pane right
Hacer zoom en un panel
Necesitas un panel en pantalla completa temporalmente? Alterna el zoom:
Ctrl-b z
Pulsalo de nuevo para restaurar el layout dividido. La barra de estado muestra una Z junto al nombre de la ventana cuando un panel esta en zoom.
Cerrar un panel
Escribe exit en el panel, o pulsa:
Ctrl-b x
tmux pide confirmacion. Si cierras el ultimo panel de una ventana, la ventana se cierra tambien.
Intercambiar paneles
Rota las posiciones de los paneles:
Ctrl-b { # Move current pane left/up
Ctrl-b } # Move current pane right/down
Como usar el modo copia de tmux para desplazarse y buscar?
Por defecto, no puedes desplazarte hacia arriba en un panel de tmux con la rueda del raton o Page Up. El modo copia (copy mode) te da desplazamiento, busqueda y seleccion de texto.
Entra en el modo copia:
Ctrl-b [
Ahora estas en modo copia. La esquina superior derecha muestra tu posicion en el buffer de desplazamiento (por ejemplo, [0/500]).
Navegacion en modo copia
tmux usa teclas estilo emacs por defecto. Si tu variable de entorno EDITOR o VISUAL contiene "vi", usa teclas estilo vi en su lugar.
Modo emacs (por defecto):
| Accion | Tecla |
|---|---|
| Desplazar arriba | Ctrl-Up o Page Up |
| Desplazar abajo | Ctrl-Down o Page Down |
| Mover cursor | Teclas de flechas |
| Inicio de linea | Ctrl-a |
| Fin de linea | Ctrl-e |
| Buscar adelante | Ctrl-s |
| Buscar atras | Ctrl-r |
| Iniciar seleccion | Ctrl-Space |
| Copiar seleccion | Alt-w |
| Salir del modo copia | q |
Modo vi:
| Accion | Tecla |
|---|---|
| Desplazar arriba | Ctrl-u (media pagina) |
| Desplazar abajo | Ctrl-d (media pagina) |
| Mover cursor | h j k l |
| Buscar adelante | / |
| Buscar atras | ? |
| Iniciar seleccion | Space |
| Copiar seleccion | Enter |
| Salir del modo copia | q |
Despues de copiar, pega con:
Ctrl-b ]
Atencion: el modo copia es la forma de buscar en salidas largas de comandos. Si un build falla y el error desaparecio de la pantalla, entra en modo copia y busca hacia atras con Ctrl-r (emacs) o ? (vi).
Como personalizar tmux con .tmux.conf?
tmux lee su configuracion desde ~/.tmux.conf cuando el servidor arranca. En tmux 3.2 y posteriores, tambien revisa ~/.config/tmux/tmux.conf.
Esta configuracion funciona bien para administracion de VPS. Cada linea esta explicada.
Crea o edita el archivo de configuracion:
nano ~/.tmux.conf
# -- General -----------------------------------------------------------------
# Change prefix from Ctrl-b to Ctrl-a (easier to reach)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# Start window numbering at 1 (0 is far from the prefix key)
set -g base-index 1
setw -g pane-base-index 1
# Renumber windows when one is closed (no gaps)
set -g renumber-windows on
# Increase scrollback buffer (default is 2000 lines)
set -g history-limit 50000
# Reduce escape delay (snappier key response)
set -g escape-time 10
# Enable mouse support (scroll, click panes, resize)
set -g mouse on
# -- Display -----------------------------------------------------------------
# 256-color terminal support
set -g default-terminal "tmux-256color"
# -- Key Bindings ------------------------------------------------------------
# Split panes with | and - (more intuitive than " and %)
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# Navigate panes with Alt-arrow (no prefix needed)
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Reload config with prefix r
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
# -- Copy Mode ---------------------------------------------------------------
# Use vi keys in copy mode
setw -g mode-keys vi
# -- Status Bar --------------------------------------------------------------
# Status bar position
set -g status-position bottom
# Update interval (seconds)
set -g status-interval 5
# Clean status bar colors
set -g status-style "bg=colour235,fg=colour136"
set -g status-left "#[fg=colour235,bg=colour136] #S #[fg=colour136,bg=colour235] "
set -g status-right "#[fg=colour136] %H:%M %d-%b-%Y "
set -g status-left-length 20
Guarda y sal. Aplica la configuracion a una sesion tmux en ejecucion:
tmux source-file ~/.tmux.conf
Verifica pulsando Ctrl-a (el nuevo prefijo) en lugar de Ctrl-b. Si funciona, la configuracion se cargo correctamente.
Establece los permisos adecuados en el archivo de configuracion:
chmod 600 ~/.tmux.conf
ls -la ~/.tmux.conf
-rw------- 1 youruser youruser 1234 Mar 19 10:00 /home/youruser/.tmux.conf
El permiso 600 significa que solo tu usuario puede leer y escribir el archivo. Esto es relevante si almacenas scripts personalizados o rutas sensibles en tu configuracion de tmux.
Cambios principales respecto a los valores por defecto:
- Prefijo
Ctrl-apone la tecla bajo tu menique izquierdo.Ctrl-brequiere un estiramiento. Es el rebind mas comun. base-index 1hace que las ventanas empiecen en 1 en lugar de 0. PulsarCtrl-a 1para la primera ventana resulta natural.history-limit 50000almacena 50.000 lineas de desplazamiento por panel. Las 2.000 por defecto son demasiado pocas para seguir logs.escape-time 10reduce el tiempo que tmux espera tras recibir la tecla Escape. El valor por defecto (500ms) hace que Vim se sienta lento dentro de tmux.-c "#{pane_current_path}"en los bindings de division abre nuevos paneles en el directorio en el que te encuentras, en lugar del directorio home.mode-keys vicambia el modo copia a navegacion estilo vi. Cambialo aemacssi lo prefieres.
Como instalar plugins de tmux con tpm?
tmux Plugin Manager (tpm) te permite instalar plugins desde GitHub. Dos plugins que vale la pena conocer:
- tmux-resurrect guarda y restaura sesiones de tmux tras reinicios del servidor
- tmux-continuum guarda sesiones automaticamente a intervalos regulares
Instalar tpm
Clona el repositorio:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Anade estas lineas al final de ~/.tmux.conf:
# -- Plugins -----------------------------------------------------------------
# Plugin manager
set -g @plugin 'tmux-plugins/tpm'
# Save/restore sessions across reboots
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Auto-save sessions every 15 minutes
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
# Initialize tpm (keep this line at the very bottom)
run '~/.tmux/plugins/tpm/tpm'
Recarga la configuracion:
tmux source-file ~/.tmux.conf
Instala los plugins desde dentro de tmux:
Ctrl-a I
Es una I mayuscula. tpm descarga e instala los plugins. Veras un mensaje cuando termine.
Verifica que los plugins se instalaron:
ls ~/.tmux/plugins/
tmux-continuum tmux-resurrect tpm
Usar tmux-resurrect
Guarda el layout de tu sesion actual:
Ctrl-a Ctrl-s
Restaura despues de un reinicio:
Ctrl-a Ctrl-r
tmux-resurrect guarda los layouts de ventanas, las divisiones de paneles y el directorio actual de cada panel. Con tmux-continuum habilitado, esto ocurre automaticamente cada 15 minutos.
Como manejar sesiones tmux anidadas por SSH?
Cuando ejecutas tmux localmente y te conectas por SSH a un VPS que tambien ejecuta tmux, terminas con tmux dentro de tmux. Ambas instancias responden a la misma tecla prefijo. Tus pulsaciones van al tmux exterior (local) en lugar del interior (remoto).
La solucion: envia la tecla prefijo al tmux interior pulsando el prefijo dos veces.
Ctrl-a Ctrl-a d # Detach the inner (remote) session
El primer Ctrl-a lo captura el tmux exterior. El segundo Ctrl-a se reenvia al tmux interior como su prefijo. Luego d desconecta la sesion interior.
Un enfoque mas limpio: usa prefijos diferentes. Manten Ctrl-a en local y deja Ctrl-b como valor por defecto en los servidores remotos. Asi no hay conflicto.
Si ya cambiaste el prefijo en ambos lados, anade un toggle a tu ~/.tmux.conf local:
# Toggle prefix passthrough with F12
bind -T root F12 \
set prefix None \;\
set key-table off \;\
set status-style "bg=colour238,fg=colour240" \;\
display-message "Prefix OFF (sending to inner)"
bind -T off F12 \
set -u prefix \;\
set -u key-table \;\
set -u status-style \;\
display-message "Prefix ON (local)"
Pulsa F12 para desactivar el prefijo local y enviar todas las teclas al tmux remoto. Pulsa F12 de nuevo para reactivarlo. La barra de estado atenuada te da un indicador visual de en que modo estas.
Como crear layouts tmux con scripts para administracion de servidores?
En lugar de dividir paneles manualmente cada vez que te conectas por SSH, programa tu layout con un script. Esto crea un espacio de trabajo repetible con un solo comando.
Crea un script:
nano ~/tmux-admin.sh
#!/usr/bin/env bash
# tmux-admin.sh: three-pane admin layout
SESSION="admin"
# Kill old session if it exists
tmux kill-session -t "$SESSION" 2>/dev/null
# Create session with first window named "monitor"
tmux new-session -d -s "$SESSION" -n "monitor"
# Top pane: system monitoring
tmux send-keys -t "$SESSION:monitor" "htop" C-m
# Split horizontally: bottom pane for logs
tmux split-window -v -t "$SESSION:monitor"
tmux send-keys -t "$SESSION:monitor.1" "journalctl -f" C-m
# Split bottom pane vertically: right pane for shell
tmux split-window -h -t "$SESSION:monitor.1"
# Create second window for a working shell
tmux new-window -t "$SESSION" -n "work"
# Select the first window
tmux select-window -t "$SESSION:monitor"
# Select the bottom-right pane (the empty shell)
tmux select-pane -t "$SESSION:monitor.2"
# Attach to the session
tmux attach -t "$SESSION"
Hazlo ejecutable y lanzalo:
chmod 700 ~/tmux-admin.sh
~/tmux-admin.sh
Obtienes un layout de tres paneles: htop arriba, journalctl -f abajo a la izquierda y un shell vacio abajo a la derecha. Una segunda ventana llamada "work" esta disponible para comandos ad-hoc.
Atencion: el C-m al final de send-keys es un retorno de carro. Pulsa Enter para ejecutar el comando.
Auto-iniciar tmux al arrancar con systemd
Para sesiones de administracion de larga duracion, crea un servicio systemd:
sudo nano /etc/systemd/system/tmux-admin@.service
[Unit]
Description=tmux admin session for %i
After=network.target
[Service]
Type=forking
User=%i
ExecStart=/usr/bin/tmux new-session -d -s admin
ExecStop=/usr/bin/tmux kill-session -t admin
[Install]
WantedBy=multi-user.target
Habilita e inicia el servicio para tu usuario:
sudo systemctl enable --now tmux-admin@youruser.service
Verifica que esta en ejecucion:
sudo systemctl status tmux-admin@youruser.service
● tmux-admin@youruser.service - tmux admin session for youruser
Loaded: loaded (/etc/systemd/system/tmux-admin@.service; enabled)
Active: active (running)
Ahora una sesion tmux llamada "admin" se inicia automaticamente con el arranque. Conectate a ella despues de SSH:
tmux attach -t admin
Seguridad: permisos del socket de tmux
tmux crea un archivo de socket para comunicarse entre sus procesos servidor y cliente. Por defecto, este socket se encuentra en un directorio bajo /tmp (por ejemplo, /tmp/tmux-1000/).
Revisa tu directorio de socket:
ls -la /tmp/tmux-$(id -u)/
srwxrwx--- 1 youruser youruser 0 Mar 19 10:00 default
El directorio del socket pertenece a tu usuario con permisos que impiden que otros usuarios accedan a el. Esto significa que otros usuarios en el mismo servidor no pueden conectarse a tus sesiones de tmux.
Sin embargo, si ejecutas tmux como root, cualquier proceso ejecutandose como root puede conectarse. Evita ejecutar tmux como root para el trabajo diario. Conectate por SSH con tu usuario normal y usa sudo para comandos individuales que lo necesiten.
Si necesitas compartir una sesion de tmux (para pair programming o mentoria), usa un socket compartido de forma explicita:
tmux -S /tmp/shared-session new-session -s pair
chmod 770 /tmp/shared-session
El otro usuario se conecta con:
tmux -S /tmp/shared-session attach -t pair
Revoca el acceso cuando termines:
chmod 700 /tmp/shared-session
Algo salio mal?
tmux: command not found
El paquete no se instalo. Ejecuta sudo apt install -y tmux y revisa los errores.
"no server running on /tmp/tmux-1000/default"
No existe ninguna sesion de tmux. Inicia una con tmux new-session -s main.
Las teclas no responden / prefijo incorrecto
Comprueba que prefijo esta activo: tmux show-options -g prefix. Si cambiaste el prefijo en .tmux.conf, recarga con tmux source-file ~/.tmux.conf.
El desplazamiento con raton no funciona
Anade set -g mouse on a ~/.tmux.conf y recarga. En versiones de tmux anteriores a 2.1, la opcion era set -g mode-mouse on (sintaxis diferente).
Los colores se ven mal dentro de tmux
Establece set -g default-terminal "tmux-256color" en ~/.tmux.conf. Si tu emulador de terminal soporta color real (24-bit), anade:
set -as terminal-overrides ",*-256color:Tc"
La sesion se perdio tras un reinicio Las sesiones de tmux no sobreviven a reinicios por defecto. Usa tmux-resurrect y tmux-continuum (explicados arriba), o crea un servicio systemd para auto-iniciar una sesion.
Vim tarda en salir del modo insercion
El valor por defecto de escape-time (500ms) causa esto. Establece set -g escape-time 10 en ~/.tmux.conf.
Revisa los logs de tmux para problemas mas profundos:
tmux start-server \; show-messages
O mira los logs del sistema:
journalctl -u tmux-admin@youruser.service -f
Referencia rapida de atajos de tmux
Esta tabla usa el prefijo por defecto Ctrl-b. Si cambiaste el prefijo a Ctrl-a (como en la configuracion anterior), usa ese en su lugar.
Sesiones
| Accion | Atajo de teclado | Comando |
|---|---|---|
| Nueva sesion con nombre | tmux new-session -s name |
|
| Desconectar | Ctrl-b d |
tmux detach |
| Listar sesiones | Ctrl-b s |
tmux list-sessions |
| Conectarse | tmux attach -t name |
|
| Renombrar sesion | Ctrl-b $ |
tmux rename-session |
| Eliminar sesion | tmux kill-session -t name |
Ventanas
| Accion | Atajo de teclado | Comando |
|---|---|---|
| Nueva ventana | Ctrl-b c |
|
| Siguiente ventana | Ctrl-b n |
|
| Ventana anterior | Ctrl-b p |
|
| Ventana por numero | Ctrl-b 0-9 |
|
| Renombrar ventana | Ctrl-b , |
|
| Cerrar ventana | Ctrl-b & |
|
| Listar ventanas | Ctrl-b w |
Paneles
| Accion | Atajo de teclado | Comando |
|---|---|---|
| Division horizontal | Ctrl-b " |
|
| Division vertical | Ctrl-b % |
|
| Navegar | Ctrl-b Arrow |
|
| Redimensionar | Ctrl-b Ctrl-Arrow |
|
| Alternar zoom | Ctrl-b z |
|
| Cerrar panel | Ctrl-b x |
|
| Intercambiar panel | Ctrl-b { / Ctrl-b } |
Modo copia
| Accion | Atajo de teclado |
|---|---|
| Entrar en modo copia | Ctrl-b [ |
| Pegar buffer | Ctrl-b ] |
| Buscar (emacs) | Ctrl-r (atras) / Ctrl-s (adelante) |
| Buscar (vi) | ? (atras) / / (adelante) |
| Salir | q |
Otros
| Accion | Atajo de teclado |
|---|---|
| Linea de comandos | Ctrl-b : |
| Listar todos los atajos | Ctrl-b ? |
| Modo reloj | Ctrl-b t |
Copyright 2026 Virtua.Cloud. Todos los derechos reservados. Este contenido es una obra original del equipo de Virtua.Cloud. La reproduccion, republicacion o redistribucion sin permiso escrito esta prohibida.
¿Listo para probarlo?
Despliega tu propio servidor en segundos. Linux, Windows o FreeBSD.
Ver planes VPS