Resolución de problemas: No se puede acceder al servicio/puerto del servidor

Rate this post

Si no se puede acceder a un servicio o puerto, p. ej. HTTP en el puerto 80, puede deberse a una de las siguientes causas:

a) Se ha producido un error general del servicio.
b) El servicio está configurado incorrectamente.
c) El sistema o el firewall externo no están configurados correctamente.

Puedes utilizar las siguientes preguntas como guía para resolver este problema:

¿El servicio está escuchando al puerto?

Antes que nada debes comprobar que el servicio esté realmente funcionando y a la escucha del puerto correspondiente. Dado el caso, basta con reiniciar el servicio en cuestión o, de no ser suficiente, el servidor por completo.

Puedes comprobar si un servicio está escuchando a un puerto concreto mediante el comando netstat.

Nota
Si el servidor no es accesible a través de SSH (Linux) o una conexión a escritorio remoto (Windows), debes iniciar sesión en el servidor utilizando la consola KVM.

Instalar netstat

Netstat no está instalado por defecto en las imágenes para CentOS Stream 8, CentOS Stream 9 y Ubuntu 22.04. Para instalar netstat, introduce el siguiente comando:

CentOS Stream 8 y CentOS Stream 9

[root@localhost ~]# dnf install net-tools

Ubuntu 20.04 y Ubuntu 22.04

[root@localhost ~]# apt install net-tools
Ejemplos de uso de netstat
  • Ejemplo 1: en Windows, para comprobar que el escritorio remoto está escuchando al puerto 3389 debes introducir el siguiente comando:
C:\>netstat -an | find ":3389"
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP $IP:3389 $IP:42900 ESTABLISHED
TCP [::]:3389 [::]:0 LISTENING
UDP 0.0.0.0:3389 *:*
UDP [::]:3389 *:*
Nota

En este ejemplo, $IP (línea 3) se refiere a la dirección IP pública del servidor.

  • Ejemplo 2: en Linux, para comprobar que sshd está escuchando al puerto 22, debes introducir el siguiente comando:
[root@localhost ~]# netstat -tlnp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1531/sshd
tcp 0 0 :::22 :::* LISTEN 1531/sshd

También puede ser necesario reinstalar el servicio o el paquete de software correspondiente.

¿Se ha activado un firewall en el servidor?

Si hay un firewall activo en el propio servidor, por ejemplo el firewall de Windows, asegúrate de que el puerto correspondiente esté abierto para las conexiones entrantes.

¿Se ha asignado la política de Firewall correcta en el Cloud Panel?

Puede ser que no se haya asignado la política de firewall correspondiente al servidor en el hardware del firewall externo (configurado mediante el Cloud Panel). Tienes la posibilidad de comprobarlo en Infraestructura > Servidores, haciendo clic en la vista general de funciones del servidor.

Para mostrar las reglas definidas para una política, ve a Red > Políticas de Firewall y haz clic en la política correspondiente.

Comprobar accesibilidad externa

Para comprobar la accesibilidad de un puerto desde fuera, puedes utilizar la herramienta nmap. Para instalar nmap, escribe el siguiente comando:

CentOS Stream 8 y CentOS Stream 9

sudo dnf makecache
sudo dnf install nmap.x86_64

Ubuntu 20.04 y Ubuntu 22.04

[root@localhost ~]# apt install nmap


A continuación encontrarás un ejemplo de salida para un servidor de Windows en el que se permiten conexiones salientes mediante escritorio remoto (puerto 3389/TCP):

C:\>nmap -p 3389 -T4 -Pn $IP
––
Nmap scan report for $IP
Host is up (0.00s latency).
PORT STATE SERVICE
3389/tcp open ms-wbt-server

Aquí te mostramos un ejemplo de salida para un servidor de Linux sin reglas asignadas para SSH (puerto 22/TCP):

[root@localhost ~]# nmap -p 22 -T4 -Pn $IP
Nmap scan report for $IP
Host is up.
PORT STATE SERVICE
22/tcp filtered ssh
Nota

En este ejemplo, $IP (línea 3) se refiere a la dirección IP pública del servidor.