CH-J Server Managergestión de servidores a través de SSH
Menú
Todos los tutoriales y artículos →

El servidor está en línea, pero el puerto SSH 22 no responde

Revisa en orden el cliente, la red, el cortafuegos y sshd para averiguar por qué el servidor responde, pero SSH no.

Prueba el propio puerto

Una respuesta a ping o un sitio web que funciona no dicen nada sobre SSH, porque cada uno utiliza un protocolo o puerto diferente. Prueba el puerto TCP directamente desde el cliente. Connection refused significa que algo ha respondido, pero ningún servicio ha aceptado la conexión. Un timeout significa que nada ha respondido, lo que suele apuntar al cortafuegos, las rutas o un equipo sobrecargado.

nc -vz -w 5 server.example 22
ssh -v -o ConnectTimeout=5 user@server.example

Connection refused: comprueba sshd desde la consola

Utiliza la consola del proveedor o del hipervisor, no SSH. Comprueba que el servicio esté en ejecución, en qué dirección y puerto escucha y si la configuración es válida. En las versiones recientes de Ubuntu, SSH se inicia mediante ssh.socket, así que revisa también la unidad de socket. En otras distribuciones el servicio puede llamarse sshd.

sudo systemctl status ssh.service ssh.socket
sudo ss -lntp | grep -E ':22\b|sshd'
sudo sshd -t
sudo journalctl -u ssh -n 50 --no-pager

Timeout: revisa los cortafuegos

Revisa el cortafuegos del servidor y cualquier filtro externo, como un grupo de seguridad en la nube, el router o el panel del proveedor. Para ver si llegan paquetes, ejecuta tcpdump en el servidor durante un intento de conexión. Si no aparece nada, el bloqueo se produce antes del servidor. Si llegan paquetes pero no sale ninguna respuesta, busca la causa en el servidor.

sudo ufw status verbose
sudo nft list ruleset | less
sudo tcpdump -ni any tcp port 22

Bloqueo por fail2ban o por un cambio de puerto

Tras varios intentos fallidos de inicio de sesión, fail2ban puede haber bloqueado tu dirección, lo que se manifiesta como un timeout o una conexión rechazada solo desde tu dirección. Una prueba desde otra red lo revela rápidamente. Comprueba también si se ha cambiado el puerto con Port o se ha limitado la escucha a una dirección con ListenAddress en sshd_config o en un archivo dentro de /etc/ssh/sshd_config.d.

sudo fail2ban-client status sshd
sudo sshd -T | grep -E '^(port|listenaddress) '

El puerto acepta la conexión, pero el inicio de sesión se queda bloqueado

Si la conexión TCP se establece pero nunca llega el mensaje inicial de identificación de SSH, sshd solo funciona parcialmente o el sistema está sobrecargado. Revisa la memoria, el espacio en disco y la carga desde la consola. Un disco lleno o la memoria agotada pueden impedir nuevas sesiones mientras los servicios existentes siguen respondiendo.

uptime
free -h
df -h

Comprobarlo con CH-J Server Manager

Server Diagnostics permite probar ping, una conexión TCP y la cadena de identificación de SSH sin iniciar sesión, tanto para IPv4 como para IPv6, para ver en qué etapa se produce el fallo. Las pruebas se realizan únicamente desde tu equipo. No puede ver el interior del servidor ni determinar qué cortafuegos ha descartado un paquete, por lo que sigues necesitando la consola para las comprobaciones anteriores.

Documentación detallada

OpenSSH: sshd →

man: ss →

Seguridad y desbloqueo biométrico →