
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.php
en 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 9000
qué 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 nc
para verificar el puerto.