
Tenho usado hospedagem compartilhada para hospedar meu site. Quero implantar um aplicativo PHP WebSocket criado usando Ratchet PHP. Então eu quero que ele escute na porta 9000.
Quando executei o comando php server.php
em meu acesso SSH, ele mostra que o servidor foi iniciado e está escutando em domain.com:9000. Mas no meu aplicativo de chat, demora um pouco e depois diz:
O Firefox não consegue estabelecer uma conexão com o servidor em ws://domain.com:9000/
Além disso, verifiquei telnet domain.com 9000
quais resultados
Não foi possível abrir a conexão com o host, na porta 9000: Falha na conexão.
Entrei em contato com o suporte sobre isso, eles dizem
Sua porta 9000 está aberta para conexões externas.
Como posso verificar se minha porta está aberta? e também se aberto porque não escuta as conexões feitas por um navegador web como cliente para servidor?
Responder1
Sua porta 9000 está aberta para conexões externas.
Mas não é isso que você está tentando fazer. Você está tentando fazer umentradaconexão com o servidor, não uma conexão de saída do servidor.
Como posso verificar se minha porta está aberta?
Entre em contato com o provedor de hospedagem e deixe claro que deseja configurar umouvintena porta 9000 da sua conta de hospedagem compartilhada, em vez de fazer conexões de saída.
Em um servidor compartilhado, o provedor de hospedagem pode não permitir nenhuma conexão de entrada ou pode exigir que você use um intervalo específico de portas.
(Enquanto isso, em um servidor privado/dedicado, as únicas restrições são aquelas que você mesmo definiu no firewall do servidor, portanto, verifique as regras do firewall – iptables, ufw, firewalld e outros.)
Responder2
Se você tiver acesso ssh, em um sistema Linux, poderá consultar suas regras de firewall usando iptables:
sudo iptables -S | grep ACCEPT
Se a regra do firewall foi modificada usando o firewall-cmd
, você pode consultar as regras usando o seguinte comando:
sudo firewall-cmd --list-all
Para um 'mapa' completo do firewall (útil se você precisar entender como as várias cadeias são configuradas), você pode executar o seguinte comando:
sudo iptables -L
Responder3
Aqui está meu script bash para verificar as portas abertas!
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 se a porta está aberta ou não, use nc
para verificar a porta.