No Windows, usando a linha de comando, como você verifica se uma porta remota está aberta?


Respostas:


62

Outro dia encontrei uma jóia hiddem da Microsoft, projetada para testar portas:

Portqry.exe

"Portqry.exe é um utilitário de linha de comando que você pode usar para ajudar a solucionar problemas de conectividade TCP / IP. O Portqry.exe é executado em computadores com Windows 2000, com Windows XP e com Windows Server 2003. O utilitário relata o status da porta TCP e UDP em um computador que você seleciona. "


Nota: A tentativa de fazer o download da Microsoft retornou uma página informando que o download "não está mais disponível".
dgw

@dgw Obrigado por isso .. google mostra uma nova versão se você procurar por `retratar" que eu vou verificar amanhã
Peter M


52

Qual versão do Windows? Para Windows 8 / Server 2012 e posterior, o seguinte funciona no PowerShell:

Test-NetConnection 128.159.1.1 -Port 80

Alguns usuários do Google também vão encontrar alternativas que usam o .NET Framework diretamente (já que o PowerShell permite fazer isso) para sistemas executando versões inferiores do Windows que não estarão Test-NetConnectiondisponíveis.

Se você não tem aversão ao uso de utilitários de terceiros, o Nmap também é um ótimo amigo e funciona a partir da linha de comando.


1
Método $connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
net

No Win7, isso não funciona :-(
samsmith 5/11/2015

@samsmith Você está falando sobre o comando na minha resposta ou sobre o comentário do ST8Z ...? O da minha resposta funciona apenas para Win8 / 2k12 e superior, e a resposta diz o mesmo.
Iszi

1
Parece ser o Windows 8.1 - Não consigo encontrá-lo no Windows 8
Andy Krouwel

1
Funciona muito bem no Windows 10 e não preciso instalar nenhum programa ou adicionar nenhum recurso. Obrigado! :)
Steve Bauman

24

Use o comando telnet para conectar-se ao servidor na porta especificada e veja se uma conexão pode ser estabelecida.

Sucesso:

$ telnet my_server 25
220 my_server ESMTP Postfix

Falhou:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed

14
não funciona para UDP.
Adriano Varoli Piazza

8
UDP é sem conexão ..
Amalgovinus

7

O Telnet funcionará para o TCP.

O Netcat é uma ferramenta melhor para esse tipo de coisa, incluindo UDP, mas alguns softwares AV consideram uma 'ferramenta hacker maligna'



0

Use a porta netcat do Windows :

>nc -zvv www.google.com 80
www.google.com [108.177.96.103] 80 (http) open
sent 0, rcvd 0
>

>nc -zvv www.google.com 888
www.google.com [108.177.96.147] 888 (?): TIMEDOUT
sent 0, rcvd 0: NOTSOCK
>

-4

'netstat' é seu amigo.


3
Máquina local sim, máquina remota não.

3
Esta resposta foi publicada antes da edição que especificou que se trata de uma porta na máquina remota.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.