In Windows, utilizzando la riga di comando, come si controlla se una porta remota è aperta?


Risposte:


62

L'altro giorno ho trovato una gemma hiddem da Microsoft progettata per testare le porte:

Portqry.exe

"Portqry.exe è un'utilità della riga di comando che è possibile utilizzare per la risoluzione dei problemi di connettività TCP / IP. Portqry.exe viene eseguito su computer basati su Windows 2000, su computer basati su Windows XP e su Windows Server 2003. L'utilità riporta lo stato delle porte TCP e UDP su un computer selezionato. "


Nota: il tentativo di scaricare questo da Microsoft ha restituito una pagina in cui si afferma che il download non è "più disponibile".
dgw,

@dgw Grazie per questo .. google mostra una nuova versione se cerchi "ritratti" che controllerò domani
Peter M


52

Quale versione di Windows? Per Windows 8 / Server 2012 e versioni successive, in PowerShell funziona come segue:

Test-NetConnection 128.159.1.1 -Port 80

Alcuni googling mostreranno anche alternative che usano direttamente .NET Framework (poiché PowerShell ti consente di farlo) per i sistemi che eseguono versioni inferiori di Windows che non saranno Test-NetConnectiondisponibili.

Se non sei contrario all'utilizzo di utility di terze parti, Nmap è anche un ottimo amico da avere e funziona dalla riga di comando.


1
Metodo .Net:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z

Su Win7, ciò non funziona :-(
samsmith

@samsmith Stai parlando del comando nella mia risposta o del commento di uno ST8Z ...? Quello nella mia risposta funziona solo per Win8 / 2k12 e successivi, e la risposta dice altrettanto.
Iszi,

1
Sembra essere Windows 8.1 - Non riesco a trovarlo su Windows 8
Andy Krouwel,

1
Funziona alla grande su Windows 10 e non ho bisogno di installare alcun programma o aggiungere funzionalità. Grazie! :)
Steve Bauman

24

Utilizzare il comando telnet per connettersi al server sulla porta specificata e vedere se è possibile stabilire una connessione.

Successo:

$ telnet my_server 25
220 my_server ESMTP Postfix

Fallire:

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

14
non funziona per UDP.
Adriano Varoli Piazza

8
UDP è senza connessione ..
Amalgovinus,

7

Telnet funzionerà per TCP.

Netcat è uno strumento migliore per questo genere di cose, incluso UDP, ma alcuni software AV lo considerano uno "strumento hacker malvagio"


1

il seguente comando elencherà tutte le porte in uso sulla macchina ...

netstat -a

L'output contiene il protocollo, l'indirizzo locale, l'indirizzo esterno e lo stato corrente

Documentazione di Netstat su microsoft.com


8
La domanda è relativa alle porte aperte su un computer remoto , non locale.
Chris S,

0

Usa porta Windows netcat :

>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" sei tuo amico.


3
Macchina locale sì, macchina remota no.

3
Questa risposta è stata pubblicata prima della modifica che specificava che si tratta di una porta sul computer remoto.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.