Como verificar se uma porta está aberta no servidor ou não?

Como verificar se uma porta está aberta no servidor ou não?

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.phpem 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 9000quais 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 ncpara verificar a porta.

informação relacionada