Come verificare se una porta è bloccata su un computer Windows?


106

Sulla piattaforma Windows, quali opzioni native devo verificare se una porta (3306, ad esempio) sul mio computer locale (come in localhost), è bloccata?


1
Giusto per chiarire, intendi bloccato, come bloccato da un firewall o gateway, o intendi già in uso da qualcos'altro?
Squillman,

1
Il test Audit My PC Firewall consente di testare una porta specifica o un intervallo di porte da una fonte esterna.
Peter Stuer,

Risposte:


111

Dal momento che sei sul computer Windows, queste cose possono essere fatte,

  • Esegui il seguente comando e cerca un listener ": 3306" (non hai menzionato UDP / TCP). Ciò confermerà che c'è qualcosa in esecuzione sulla porta.

    netstat -a -n

  • Dopodiché, se ti aspetti connessioni in entrata su questa porta e ritieni che il firewall potrebbe bloccarle, puoi avviare la registrazione del firewall di Windows e controllare i log per le connessioni interrotte

    • Vai a Windows Firewall, Impostazioni avanzate
    • Fai clic sul pulsante Impostazioni accanto a "Connessione alla rete locale"
    • Seleziona "Registra i pacchetti rilasciati"
    • Guarda il percorso del file di registro (se non presente definirne uno)
    • Clicca OK
    • Ora, quando viene effettuato il tentativo di connessione (supponendo che tu sappia quando è stato fatto), guarda il file di registro per un rilascio sulla porta 3306.
    • Se viene visualizzato, ti consigliamo di aggiungere un'eccezione per questa porta.
  • Esiste un altro comando per controllare lo stato del firewall
    (Aggiornamento per utenti di Windows 7 - come indicato di Nickseguito - utilizzare il firewall netsh advfirewall )

    firewall netsh mostra lo stato

    • questo elencherà le porte bloccate e le porte di ascolto attive con le associazioni delle applicazioni
  • Questo comando scaricherà i dettagli di configurazione del firewall di Windows

    firewall netsh mostra config


Se si dispone di un blocco attivo (le connessioni in arrivo vengono eliminate dal firewall) dopo aver avviato la registrazione, è necessario visualizzarlo nel registro.

Se si esegue un'applicazione / servizio in ascolto su 3306, la configurazione del firewall dovrebbe mostrare che è Abilitato. Se questo non viene visualizzato, probabilmente hai perso l'aggiunta di un'eccezione con il firewall per consentire questa app / servizio.

Infine, la porta 3306 viene in genere utilizzata per MySQL. Quindi, presumo che tu stia eseguendo il server MySQL su questa macchina Windows. Dovresti quindi vedere un listener per 3306 che accetta connessioni in entrata. Se non lo vedi, devi lavorare con la tua applicazione (MySQL) per iniziare prima.


4
+1 per grandi dettagli
Salvia,

3
A partire da Windows Vista il comando "netsh firewall" è obsoleto. Ti consiglia invece di utilizzare "netsh advfirewall firewall" e fa riferimento all'articolo go.microsoft.com/fwlink/?linkid=121488
Nick DeVore,

5
Per analizzare l'output dalla riga di comando, aggiungi |find "3306"al comando, ad es.C:\Windows\System32>netstat -an |find "3306"
Cees Timmerman,

Non riesco a trovare il pulsante delle impostazioni specificato al passaggio 2 della seconda raccomandazione ...
Bassie,


23

NETSTATti dirà se la porta è in ascolto ma non ti dirà se la porta è aperta al mondo esterno. Ciò che intendo con questo è che NETSTATpotrebbe mostrare che lo 0.0.0.0 è in ASCOLTO sulla porta 3306 ma un firewall potrebbe ancora bloccare quella porta che impedisce connessioni esterne; quindi non è sufficiente fare affidamento da NETSTATsoli.

Il modo migliore per verificare se una porta è bloccata è eseguire una scansione della porta dal computer client.

Esistono molti modi per eseguire una scansione delle porte, ma poiché hai menzionato di essere su Windows, suggerirò l'utilità della riga di comando di Microsoft PortQrye la versione grafica PortQryUI

Per testare tutte le porte aperte:

portqry.exe -n #.#.#.#   

Per testare una porta specifica:

portqry.exe -n #.#.#.# -e #

Ad esempio per testare l'interfaccia Web di un router in 192.168.1.1:

portqry.exe -n 192.168.1.1 -e 80

Che ritorna:

TCP port 80 (http service): LISTENING

Dove come ritorna su un computer locale senza HTTPD in esecuzione:

TCP port 80 (http service): NOT LISTENING

Utilizzando un'utilità PortScan otterrai uno dei 3 risultati.

  • Listening indica che il server è in ascolto sulla porta specificata
  • Filtered significa che ha ricevuto un pacchetto di riconoscimento TCP con il flag di reset impostato che probabilmente indica un problema di firewall o software
  • Not Listening significa che non ha ricevuto alcuna risposta

telnetè un'altra opzione della riga di comando che di solito è installata sul sistema operativo per impostazione predefinita. Questa utility da riga di comando può essere utilizzata in modo rapido per vedere se una porta risponde a una richiesta di rete.

Per utilizzarlo telnetè sufficiente emettere il seguente comando dal prompt dei comandi:

telnet localhost 3306

Il comando sopra dovrebbe darti una rapida indicazione se la porta 3306sul localhoststa rispondendo.


Scarico PortQryUI e ho controllato dopo aver bloccato e abilitato la porta 445 sia in tcp che in udp, sta mostrando lo stesso ascolto in tcp e non in udp.
Liam Neesan,

17

Da PowerShell 4.0 puoi usare il comando Test-NetConnection

Se si desidera testare la porta 3306 come nell'esempio, il comando è

Test-NetConnection -ComputerName localhost -Port 3306

Documentazione TechNet Test-NetConnection


+1 per questo. Un'alternativa davvero piacevole che non richiede l'installazione di nulla sulla maggior parte delle macchine Windows moderne.
DCaugs

5

Se è possibile telnet alla porta dal computer locale (utilizzando l'indirizzo IP esterno), ma non da un altro computer, viene bloccato da qualche parte tra di loro.

Si noti che un firewall sul computer locale potrebbe impedire anche la prima azione.


Si noti che telnet non viene più installato su Win7 e sistemi più recenti.
Alexis Wilke,

@AlexisWilke Non è corretto. Telnet può essere installato
deepdive il

4
Per installare telnet dalla riga di comando: dism / online / Enable-Feature / FeatureName: TelnetClient
Jason Massey,
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.