¿Cómo comprobar si un puerto está abierto en el servidor o no?

¿Cómo comprobar si un puerto está abierto en el servidor o no?

He estado usando alojamiento compartido para alojar mi sitio web. Quiero implementar una aplicación PHP WebSocket creada con Ratchet PHP. Entonces quiero que escuche en el puerto 9000.

Cuando ejecuté el comando php server.phpen mi acceso SSH, muestra que el servidor está iniciado y escuchando en domain.com:9000. Pero en mi aplicación de chat, tarda un poco y luego dice:

Firefox no puede establecer una conexión con el servidor en ws://domain.com:9000/

Además, he comprobado telnet domain.com 9000qué resultados

No se pudo abrir la conexión con el host, en el puerto 9000: falló la conexión.

Me comuniqué con el soporte al respecto, dicen.

Su puerto 9000 está abierto para conexiones salientes.

¿Cómo puedo comprobar si mi puerto está abierto? y también si se abre, ¿por qué no escucha las conexiones realizadas por un navegador web como cliente a servidor?

Respuesta1

Su puerto 9000 está abierto para conexiones salientes.

Pero eso no es lo que estás intentando hacer. Estás tratando de hacer unentranteconexión al servidor, no una conexión saliente desde el servidor.

¿Cómo puedo comprobar si mi puerto está abierto?

Póngase en contacto con el proveedor de alojamiento y deje claro que desea configurar unoyenteen el puerto 9000 de su cuenta de alojamiento compartido, en lugar de realizar conexiones salientes.

En un servidor compartido, es posible que el proveedor de alojamiento no permita ninguna conexión entrante o que requiera que utilice un rango específico de puertos.

(Mientras tanto, en un servidor privado/dedicado, las únicas restricciones son aquellas que usted mismo ha establecido en el firewall del servidor, por lo que puede verificar mirando las reglas del firewall: iptables, ufw, firewalld, etc.)

Respuesta2

Si tiene acceso ssh, en un sistema Linux, puede consultar las reglas de su firewall usando iptables:

sudo iptables -S | grep ACCEPT

Si las reglas del firewall se modificaron usando firewall-cmd, puede consultar las reglas usando el siguiente comando:

sudo firewall-cmd --list-all

Para obtener un 'mapa' completo del firewall (útil si necesita comprender cómo están configuradas las distintas cadenas), puede ejecutar el siguiente comando:

sudo iptables -L

Respuesta3

¡Aquí está mi script bash para verificar los puertos abiertos!

log_file=log_file    
ip_list=("192.168.111.1" "192.168.111.2" "192.168.111.3")    
#ip_list=$(cat ip_addr.txt)  #put all ip in the text file 
        for ip in "${ip_list[@]}"
             do
              nc -z -w5 "$ip" 22
                if [ $? -eq 0 ]; then
                    echo "$ip port 22 is open " >> $log_file
                else
                    echo "SSH port 22 is not open on $ip"
                fi
            done

Para verificar que el puerto esté abierto o no, use ncpara verificar el puerto.

información relacionada