Sistemas y Servidores

Cómo solucionar el error Connection Timeout en conexiones SSH por reglas de firewall

El error de tiempo de espera agotado en el puerto 22 (ssh: connect to host ... port 22: Connection timed out) ocurre cuando el cortafuegos del servidor destino (generalmente IPTables o UFW en Ubuntu/Debian) bloquea o descarta silenciosamente los paquetes de red entrantes en el puerto 22, impidiendo la autenticación del cliente.

DIAGNÓSTICO RÁPIDO // MATRIZ DE RESOLUCIÓN

[TELEMETRY]
CAUSA
Reglas de firewall iptables o UFW bloqueando el puerto SSH (22)
SOLUCIÓN
Permitir el puerto 22 en el firewall: sudo ufw allow 22/tcp
CAUSA
Servidor SSH no está escuchando en la dirección IP esperada
SOLUCIÓN
Verificar el estado del demonio SSH con sudo systemctl status sshd

La Solución Paso a Paso

  1. 1

    Paso 1: Diagnosticar si el puerto SSH está bloqueado o cerrado

    Intenta realizar una comprobación directa de red hacia el puerto del servidor desde tu consola de comandos local para verificar si responde a peticiones TCP:

    BASH
    # Comprobar la respuesta del puerto 22 (SSH) en tu servidor
    nc -zv 192.168.1.100 22
    

    (Si la salida indica "Connection timed out" o no devuelve nada, el puerto está bloqueado en el firewall local o de red).

  2. 2

    Paso 2: Habilitar el tráfico SSH en UFW (Uncomplicated Firewall)

    Si tu servidor utiliza UFW como front-end de firewall, habilita explícitamente el acceso remoto seguro y recarga las directivas del kernel:

    BASH
    # Permitir conexiones entrantes en el puerto de SSH por defecto
    sudo ufw allow 22/tcp
    
    # Habilitar el cortafuegos si estaba inactivo y recargar reglas
    sudo ufw enable && sudo ufw reload
    
  3. 3

    Paso 3: Configurar reglas explícitas en IPTables

    Si trabajas en sistemas sin UFW o necesitas mayor granularidad en IPTables, abre el puerto SSH de forma directa en tu cadena de entrada:

    BASH
    # Aceptar paquetes TCP de entrada para el puerto 22
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    # Guardar las reglas para que persistan tras reiniciar el servidor
    sudo iptables-save | sudo tee /etc/iptables/rules.v4
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • No expongas el puerto SSH predeterminado (22) de forma abierta a cualquier dirección IP de Internet (0.0.0.0/0). Hacer esto saturará tus registros de autenticación con ataques automatizados de fuerza bruta en cuestión de minutos; en su lugar, limita el acceso únicamente al rango de direcciones IP de tu red de trabajo o VPN, o cambia el puerto SSH de escucha a uno no estándar en el archivo /etc/ssh/sshd_config.
Autor • Diseñador Web & Creador de Apps

Rodolfo Castro

Diseñador web, creador de aplicaciones y fundador de SoporteCero. Especialista en desarrollo de productos digitales, interfaz de usuario y arquitectura web (Pixel Digital Dz). Cada tutorial y solución de SoporteCero es reproducido y verificado en laboratorio técnico para ofrecer guías funcionales y actualizadas.