Come determinare se una porta è aperta su un server Windows?

Sto cercando di installare un sito con una porta alternativa su un server, ma la porta potrebbe essere chiusa da un firewall. C’è un modo per eseguire il ping out o in, su una porta specifica, per vedere se è aperto?

Supponendo che si tratti di una porta TCP (piuttosto che UDP) che stai tentando di utilizzare:

  1. Sul server stesso, utilizzare netstat -an per verificare quali porte sono in ascolto

  2. Dall’esterno, solo la telnet host port (o l’ telnet host:port su sistemi Unix) per vedere se la connessione è rifiutata, accettata o timeout

Su quest’ultimo test, quindi in generale:

  • connessione rifiutata significa che nulla è in esecuzione su quella porta
  • accettato significa che qualcosa sta funzionando su quella porta
  • timeout significa che un firewall sta bloccando l’accesso

Su Win7 o Vista l’opzione defaul ‘telnet’ non è riconosciuta come comando interno o esterno, programma eseguibile o file batch. Per risolvere questo, basta abilitarlo: fare clic su Start, Pannello di controllo, Programmi, quindi triggersre o distriggersre Funzionalità Windows. Nell’elenco, scorrere verso il basso e selezionare Client Telnet e fare clic su OK

Volevo solo aggiungere che su Windows puoi usare

 netstat -na | find "your_port" 

per restringere i risultati. Puoi anche filtrare LISTENING , ESTABLISHED , TCP e così via. Attenzione però è case sensitive.

Se si sta controllando dall’esterno, non dal server stesso, e non si vuole disturbare l’installazione di telnet (poiché non viene fornito con le ultime versioni di Windows) o qualsiasi altro software, allora si dispone di PowerShell nativo:

 Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed 

(Sfortunatamente funziona solo con PowerShell 4.0 o versioni successive. Per controllare la versione PS, digita $PSVersionTable .)


(Se hai un PSVersion <4.0, sei sfortunato. Controlla questo tavolo:

inserisci la descrizione dell'immagine qui

Anche se puoi aggiornare la tua versione di PowerShell installando Windows Management Framework 4.0 , non è stato il trucco per me, il cmdlet Test-NetConnection non è ancora disponibile).

Su un computer Windows è ansible utilizzare PortQry di Microsoft per verificare se un’applicazione è già in ascolto su una porta specifica utilizzando il seguente comando:

 portqry -n 11.22.33.44 -p tcp -e 80 

Mi è piaciuto così:

 netstat -an | find "8080" 

da telnet

 telnet 192.168.100.132 8080 

E assicurati che il firewall sia spento su quella macchina.

Se telnet non è disponibile, scarica PuTTY . È un client telnet, ssh, ecc. Di gran lunga superiore e sarà utile in molte situazioni, non solo in questa, specialmente se si sta amministrando un server.

Vuoi uno strumento per farlo? C’è un sito web all’indirizzo http://www.canyouseeme.org/ . Altrimenti, hai bisogno di un altro server per richiamarti per vedere se una porta è aperta …

Usalo se vuoi vedere tutte le porte usate e in ascolto sul server Windows:

 netstat -an |find /i "listening" 

Vedi tutte le porte aperte, in ascolto e stabilite:

 netstat -a 

Sul server Windows puoi usare

 netstat -an | where{$_.Contains("Yourport")} 

anche lo psping di Sysinternals è molto buono

Un’altra opzione è tcping .

Per esempio:

tcping host port

Penso che la migliore che ho ottenuto sia questa in cui puoi controllare i tuoi porti e anche le porte di altri domini.

http://www.yougetsignal.com/tools/open-ports

Ecco cosa ha funzionato per me,

  • apri prompt dei comandi
  • digitare telnet
  • Microsoft Telnet> Apri

Confermerà se la porta è aperta.

Un’altra utility che ho trovato ed è buona e piccola, Port Scanner Port Line versione 2.0 di PortQry 2.0 https://www.microsoft.com/en-us/download/details.aspx?id=17148

puoi eseguire il ping di un server e una porta e ti dirà lo stato della porta, c’è un’utilità della riga di comando e un’interfaccia utente per esso.