Estou tentando instalar um site em uma porta alternativa em um servidor, mas a porta pode estar fechada por um firewall. Existe uma maneira de efetuar ping ou entrar, em uma porta específica, para ver se está aberta?
Estou tentando instalar um site em uma porta alternativa em um servidor, mas a porta pode estar fechada por um firewall. Existe uma maneira de efetuar ping ou entrar, em uma porta específica, para ver se está aberta?
Respostas:
Supondo que seja uma porta TCP (em vez de UDP) que você está tentando usar:
No próprio servidor, use netstat -an
para verificar quais portas estão escutando.
Do lado de fora, basta usar telnet host port
(ou telnet host:port
nos sistemas Unix) para ver se a conexão é recusada, aceita ou expirou.
Nesse último teste, em geral:
No Windows 7 ou Windows Vista, a opção padrão 'telnet' não é reconhecida como um comando interno ou externo, programa operável ou arquivo em lote. Para resolver isso, ative-o: Clique em * Iniciar ** → Painel de controle → Programas → Ativar ou desativar os recursos do Windows . Na lista, role para baixo, selecione Cliente Telnet e clique em OK.
Could not open connection to the host, on port *x*: Connect failed
indica?
telnet api-3t.sandbox.paypal.com 443
recebo Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failed
É por que o firewall está bloqueando?
o host port
vs linha de comando aberta (cmd.exe) e digitetelnet host port
No Windows você pode usar
netstat -na | find "your_port"
para restringir os resultados. Você também pode filtrar para LISTENING
, ESTABLISHED
, TCP
e tal. Lembre-se de que diferencia maiúsculas de minúsculas.
find
não funcionou no Windows 10 para mim, mas netstat -na | findstr "8080"
funcionou
Se você estiver verificando de fora, não do próprio servidor, e não quiser se preocupar em instalar o telnet (como ele não vem nas últimas versões do Windows) ou em qualquer outro software, você possui o PowerShell nativo:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(Infelizmente, isso funciona apenas com o PowerShell 4.0 ou mais recente. Para verificar sua versão do PowerShell, digite $PSVersionTable
.)
PS: Observe que, atualmente, existem algumas alegações na twittersphere que sugerem que essa resposta poderia ser melhorada ao mencionar "Conexão de teste" do PowerShell Core ou o atalho "tnc". Consulte https://twitter.com/david_obrien/status/1214082339203993600 e ajude-me a editar esta resposta para melhorá-la, por favor!
(Se você tem uma PSVersion <4.0, não tem sorte. Verifique esta tabela:
Embora você possa atualizar sua versão do PowerShell instalando o Windows Management Framework 4.0 , ele não fez o truque para mim, o cmdlet Test-NetConnection ainda não está disponível).
Em uma máquina Windows, você pode usar o PortQry da Microsoft para verificar se um aplicativo já está escutando uma porta específica usando o seguinte comando:
portqry -n 11.22.33.44 -p tcp -e 80
portqry -n 11.22.33.44 -p udp -e 19132
Eu fiz assim:
netstat -an | find "8080"
do telnet
telnet 192.168.100.132 8080
E apenas verifique se o firewall está desativado nessa máquina.
netstat -an | find "8080"
, diz #no such file named "8080"
Se telnet
não estiver disponível, faça o download do PuTTY . É um cliente Telnet, SSH etc. muito superior e será útil em muitas situações, não apenas nesta, especialmente se você estiver administrando um servidor.
Você quer uma ferramenta para fazer isso? Existe um site em http://www.canyouseeme.org/ . Caso contrário, você precisará de outro servidor para ligar de volta para ver se uma porta está aberta ...
No Windows Server você pode usar
netstat -an | where{$_.Contains("Yourport")}
Outro utilitário que eu achei e também é bom e pequeno, é o PortQry Command Line Port Scanner versão 2.0 .
Você pode executar ping em um servidor e uma porta e ele informará o estado da porta. Há um utilitário de linha de comando e uma interface do usuário para ele.