Sulla piattaforma Windows, quali opzioni native devo verificare se una porta (3306, ad esempio) sul mio computer locale (come in localhost
), è bloccata?
Sulla piattaforma Windows, quali opzioni native devo verificare se una porta (3306, ad esempio) sul mio computer locale (come in localhost
), è bloccata?
Risposte:
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
Esiste un altro comando per controllare lo stato del firewall
(Aggiornamento per utenti di Windows 7 - come indicato di Nick
seguito - utilizzare il firewall netsh advfirewall )
firewall netsh mostra lo stato
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.
|find "3306"
al comando, ad es.C:\Windows\System32>netstat -an |find "3306"
NETSTAT
ti dirà se la porta è in ascolto ma non ti dirà se la porta è aperta al mondo esterno. Ciò che intendo con questo è che NETSTAT
potrebbe 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 NETSTAT
soli.
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 PortQry
e 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 specificataFiltered
significa che ha ricevuto un pacchetto di riconoscimento TCP con il flag di reset impostato che probabilmente indica un problema di firewall o softwareNot Listening
significa che non ha ricevuto alcuna rispostatelnet
è 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 3306
sul localhost
sta rispondendo.
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
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.