Pregunta:
¿Por qué reiniciar un servidor que ejecuta Ubuntu 14.04 me da errores de 'Conexión rechazada'?
Veo ssh: connect to host <IP-address-here> port 22: Connection refused
pero solo para 14.04 y solo después de reiniciar. Estoy usando 12.04 Desktop en casa. ¿Cómo soluciono esto?
Para aclarar la pregunta, esto es lo que funciona o no para mí:
- SSH en una nueva instalación de 12.04> cerrar sesión> SSH de nuevo> funciona
- SSH en una nueva instalación de 12.04> reiniciar> SSH nuevamente> funciona
- SSH en una nueva instalación de 14.04> cerrar sesión> SSH de nuevo> funciona
- SSH en una nueva instalación de 14.04> reiniciar> SSH nuevamente> Conexión rechazada
El problema que tengo es exclusivo de la versión 14.04 y solo ocurre después de reiniciar. Tengo varios servidores que ejecutan 12.04 antes de esto y todo sigue funcionando perfectamente. Tengo un nuevo servidor en el que quiero usar 14.04 y quiero entender qué está fallando. ¿Alguna sugerencia?
Esto es lo que he probado hasta ahora:
sudo traceroute -p 22 -T <IP-address-here>
Traceroute funciona bien, obtengo una respuesta del servidor en el puerto SSH 22.
initctl list
...
ssh start/running, process 23371
...
Parece que ssh en el servidor 14.04 está configurado para iniciarse en el arranque (como se esperaba).
tom@Desktop:~$ ssh -vvv root@<IP-address-here>
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to <IP-address-here> [<IP-address-here>] port 22.
debug1: connect to address <IP-address-here> port 22: Connection refused
ssh: connect to host <IP-address-here> port 22: Connection refused
Editar: Aquí está todo el registro del sistema de una máquina recién creada . Lo creé, SSH ingresé y emití el comando reboot now
, luego obtuve un error de conexión rechazada después de esperar a que se reiniciara e intentar SSH por segunda vez. Reinicio completo a través del panel de control de alojamiento y ahora la conexión SSH funciona nuevamente.
Respuesta:
Respuesta rápida:
SSH no es el problema. El comando que usa para reiniciar es el problema: no reboot now
, reboot
o shutdown -r now
para reiniciar su sistema.
La sintaxis del comando ( desde 13.04 ) ha sido:
reboot [OPTION]... [REBOOTCOMMAND]
El REBOOTCOMMAND
nunca existió antes. En 12.04, su now
fue simplemente ignorado, pero ahora se está utilizando … Y es romper todo.
Respuesta larga, con los resultados de mis pruebas y la explicación:
Tengo un problema similar con algunos servidores que ejecutan 14.04 Y en VPS (alojado en el proveedor francés de OVH, que ejecuta OpenVZ) Y al reboot now
dentro del servidor.
Como tú, emití el comando reboot now
desde la consola (inicié sesión usando SSH). Unos segundos después de presionar RETURN , mi sesión se desconecta automáticamente. Como tú, nunca he podido volver a conectarme al servidor a través de SSH después de emitir este comando.
Entonces, decidí abrir la consola KVM proporcionada por OVH. (emulando el acceso directo mediante teclado y pantalla en un servidor físico para este tipo de servidor virtual).
Pude conectarme a mi máquina y vi que ella estaba ingresando al modo de usuario único, esperando que presione CTRL + D para continuar o que ingresara la contraseña de root para ingresar al modo de mantenimiento. Presioné la combinación de teclas para dejar que el proceso continuara y luego pude volver a SSH en mi sistema. ¿Cuál fue mi sorpresa al ver, después de ejecutar el uptime
, que el tiempo de actividad no fue de 2 o 3 minutos, sino de mucho día: el reboot now
ejecutado dentro de un VPS de Ubuntu 14.04 no se está reiniciando realmente, sino que solo está pidiendo entrar en modo de usuario único!
A partir de esto, aprendí a nunca pedir un reinicio desde mi VPS, sino a solicitarlo desde el comando provisto en la interfaz de administración del proveedor de alojamiento.
Por tanto, no hay ningún problema con la instalación de SSH. El problema es cuando escribe reboot now
. De hecho, también lo probé después, si hubiera escrito reboot
(solo la palabra, sin opción), habría hecho lo que pretendía hacer: reiniciar el servidor.
Al usar reboot
con un argumento (de la página de manual), llame al comando shutdown
con los argumentos dados. Y de hecho, si ejecuto el shutdown now
, tengo el mismo comportamiento: el sistema no se reinicia, entra en modo de usuario único.
Observación: parece que es el comportamiento previsto, ya que el mensaje que aparece en la pantalla después de presionar la ejecución de este comando dice algo como:
El sistema pasará al modo de mantenimiento.
Modo de mantenimiento o modo de usuario único, esto representa lo mismo, un nivel de ejecución con anotaciones más que un shell, sin red, sin procesos de red, …
Esto puede resultar confuso, pero tenga en cuenta que el uso correcto de shutdown
es, por ejemplo: shutdown -h now
para detener el sistema ahora o shutdown -r now
para reiniciarlo ahora. No sabía que el shutdown now
solo pondría el sistema en modo de usuario único. Normalmente hago init S
para lograr esto.