Iniciar sesiónCrear servidor
VPS y VDS

Cómo cambiar el puerto SSH de tu VPS sin quedarte fuera

Cambia el puerto SSH de tu VPS paso a paso sin perder el acceso: abre el puerto nuevo, edita sshd, ajusta el firewall del panel y la consola web.

5 min de lectura#change ssh port#ssh port 2222#sshd_config port#cambiar puerto ssh#mover ssh de puerto#vps ssh port#ssh.socket port

Para cambiar el puerto SSH de tu VPS, permite primero el puerto nuevo en todos los firewalls, haz que SSH escuche en el puerto antiguo y en el nuevo, prueba el nuevo desde una segunda terminal y solo entonces quita el 22. Después, actualiza el panel para que su Firewall y su consola web conozcan el puerto nuevo. Si lo haces en este orden, nunca pierdes el acceso.

Antes de empezar

  • Elige un puerto entre 1024 y 65535 que no use nada más, como 2222 o 49222. Los ejemplos usan 2222.
  • Conéctate por SSH y mantén esa sesión abierta hasta el final.
  • Ten a mano cómo abrir la consola Pantalla del panel, por si algo sale mal (la consola VNC del VPS).
  • Cambiar el puerto reduce el ruido de los bots en tus registros. No sustituye a las claves ni a fail2ban; consulta Primeros pasos de seguridad en tu VPS.

Paso 1: permite el puerto nuevo en los firewalls

Dentro del servidor

bash
sudo ufw allow 2222/tcp
bash
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

En el panel: si tu nivel de protección es Estricto, abre el puerto: Firewall, Crear regla, Abrir un puerto, escribe 2222 y elige el protocolo TCP. En los otros niveles el puerto ya responde, pero anotarlo mejora la revisión. Consulta Cómo abrir un puerto en el firewall de tu VPS.

Paso 2: haz que SSH escuche en los dos puertos

Crea un archivo de configuración que conserve el 22 y agregue el 2222:

bash
sudo tee /etc/ssh/sshd_config.d/00-port.conf <<'EOF'
Port 22
Port 2222
EOF
sudo sshd -t

Si sshd -t no imprime nada, la sintaxis es válida. Después aplica el cambio según tu sistema:

bash
sudo systemctl restart ssh
bash
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh
bash
sudo dnf install policycoreutils-python-utils -y
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo systemctl restart sshd

En las versiones de Ubuntu sin ssh.socket (como la 20.04), basta con sudo systemctl restart ssh. En AlmaLinux y Rocky hay que indicarle a SELinux que SSH puede usar el puerto nuevo, que es lo que hace semanage.

Comprueba que el servidor escucha en ambos puertos:

bash
sudo ss -tlnp | grep -E ":22 |:2222 "

En Ubuntu, las versiones recientes inician SSH bajo demanda mediante ssh.socket. Si la salida muestra solo el puerto 22, ejecuta sudo systemctl disable --now ssh.socket y después sudo systemctl enable --now ssh, y vuelve a comprobar.

Paso 3: prueba el puerto nuevo

Abre una terminal nueva (no cierres la antigua) y conéctate con -p:

bash
ssh -p 2222 [email protected]

En PuTTY, cambia Port a 2222. Si conecta, continúa. Si no, vuelve a la sesión antigua, repasa los pasos 1 y 2 y lee Qué hacer si no puedes conectarte a tu VPS.

Paso 4: actualiza el panel

  1. Firewall: abre la página Firewall, elige tu servidor, entra en la pestaña Reglas y busca Dónde atienden tus servicios. Pulsa Cambiar junto a SSH, introduce 2222 y Guardar. Esto solo informa al firewall; no mueve SSH. Sin esto, la guardia de SSH sigue vigilando el puerto antiguo.
  2. Consola web: abre tu servidor, pestaña Consola. En Cómo entra la consola, pulsa Cambiar, pon 2222 en Puerto y pulsa Guardar. Sin esto, la terminal web intenta el puerto 22 y falla.
  3. La tarjeta Desde tu compu ya muestra el comando con -p 2222.
La pestaña Consola de un VPS con la tarjeta de acceso de la consola donde se edita el campo Puerto
La pestaña Consola de un VPS con la tarjeta de acceso de la consola donde se edita el campo Puerto

Paso 5: quita el puerto 22

Cuando todo funcione en el 2222, edita /etc/ssh/sshd_config.d/00-port.conf y deja solo:

ini
Port 2222

Aplícalo con los mismos comandos de reinicio de antes (en Ubuntu, daemon-reload y después restart ssh.socket). Vuelve a probar con ssh -p 2222 .... Por último, cierra el puerto antiguo en el firewall del servidor (sudo ufw delete allow 22/tcp).

!
Atención

Quita el puerto 22 solo después de haber entrado por el 2222 desde una sesión aparte. Si te quedas fuera, usa la consola Pantalla para iniciar sesión y restaura Port 22 en el archivo.

Solución de problemas

  • Connection refused en el 2222: SSH aún no escucha ahí. Comprueba con ss -tlnp y repasa el paso de reinicio de tu sistema.
  • Connection timed out en el 2222: un firewall lo bloquea. Repasa el paso 1, incluido el modo Estricto del panel.
  • La consola web falla después del cambio: el Puerto de Cómo entra la consola sigue indicando el 22.
  • En AlmaLinux o Rocky, SSH no reinicia: probablemente te saltaste el comando semanage.

Preguntas frecuentes

¿Es seguro cambiar el puerto SSH?

Sí, si mantienes abierta tu sesión actual y pruebas el puerto nuevo antes de quitar el antiguo.

¿Cambiar el puerto SSH hace más seguro mi VPS?

Solo un poco: evita la mayoría de los escaneos automáticos. Para una protección real, usa claves SSH, desactiva el acceso por contraseña y agrega fail2ban.

¿Qué puerto SSH debo usar?

Cualquiera libre entre 1024 y 65535. Evita los puertos conocidos que usan otros servicios.

¿Tengo que decirle el puerto nuevo al panel?

Sí. Actualiza el puerto de SSH en las reglas del Firewall y en los ajustes de la consola web, o seguirán usando el 22.

¿Cómo me conecto a un puerto personalizado?

Agrega -p al comando, como en ssh -p 2222 root@IP, o cambia el campo Port de PuTTY.

Artículos relacionados

¿Buscas un servidor que puedas configurar libremente? Echa un vistazo a nuestros planes de VPS.

¿Te fue útil este artículo?
Cómo cambiar el puerto SSH de tu VPS sin quedarte fuera