verificare - Come si può scoprire quale processo è in ascolto su una porta su Windows?




verificare porte aperte su indirizzo ip (18)

Ottieni PID e nome immagine

Usa solo un comando:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"

dove 9000 dovrebbe essere sostituito dal tuo numero di porta.

L' output conterrà qualcosa come questo:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
java.exe                      5312 Services                   0    130,768 K

Spiegazione:

  • itera su ogni riga dall'output del seguente comando:

    netstat -aon | findstr 9000
    
  • da ogni riga, il PID ( %a - il nome non è importante qui) viene estratto (PID è il 5 ° elemento di quella linea) e passato al seguente comando

    tasklist /FI "PID eq 5312"
    

Se si desidera saltare l' intestazione e il ritorno del prompt dei comandi , è possibile utilizzare:

echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on

Produzione:

java.exe                      5312 Services                   0    130,768 K

Come si può scoprire quale processo è in ascolto su una porta su Windows?


  1. Aprire una finestra del prompt dei comandi (come amministratore) Da "Inizio \ Casella di ricerca" Inserire "cmd", quindi fare clic con il tasto destro del mouse su "cmd.exe" e selezionare "Esegui come amministratore"

  2. Inserire il seguente testo quindi premere Invio.

    netstat -abno

    -a Visualizza tutte le connessioni e le porte di ascolto.

    -b Visualizza l'eseguibile coinvolto nella creazione di ogni connessione o porta di ascolto. In alcuni casi, i file eseguibili noti ospitano più componenti indipendenti e in questi casi viene visualizzata la sequenza di componenti coinvolti nella creazione della connessione o della porta di ascolto. In questo caso il nome dell'eseguibile è in [] in basso, in alto c'è il componente chiamato, e così via fino al raggiungimento del TCP / IP. Si noti che questa opzione può richiedere molto tempo e fallirà se non si dispone di autorizzazioni sufficienti.

    -n Visualizza indirizzi e numeri di porta in forma numerica.

    -o Visualizza l'ID del processo proprietario associato a ciascuna connessione.

  3. Trova la porta che stai ascoltando in "Indirizzo locale"

  4. Guarda il nome del processo direttamente sotto quello.

NOTA: per trovare il processo sotto Task Manager

  1. Notare il PID (identificativo di processo) accanto alla porta che si sta guardando.

  2. Apri il Task Manager di Windows.

  3. Seleziona la scheda Processi.

  4. Cerca il PID che hai notato quando hai eseguito netstat nel passaggio 1.

    • Se non vedi una colonna PID, fai clic su Visualizza / Seleziona colonne. Seleziona PID.

    • Assicurati che "Mostra processi da tutti gli utenti" sia selezionato.


È possibile ottenere ulteriori informazioni se si esegue il seguente comando:

netstat -aon |find /i "listening" |find "port"

usando il comando 'Trova' puoi filtrare i risultati. find / i "listening" mostrerà solo le porte che sono in ascolto. Nota, è necessario / i per ignorare Case altrimenti si digita find "LISTENING". | find "port" limiterà i risultati solo a quelli contenenti il ​​numero di porta specifico. Nota, su questo filtrerà anche nei risultati che hanno il numero di porta in qualsiasi punto della stringa di risposta.



C'è una GUI nativa per Windows:

  • Start >> Tutti i programmi >> Accessori >> Strumenti di sistema >> Monitor risorse

oppure Esegui resmon.exe o dalla scheda Prestazioni di TaskManager


Con PowerShell 5 su Windows 10 o Windows Server 2016, eseguire il cmdlet Get-NetTCPConnection . Immagino che dovrebbe funzionare anche su versioni precedenti di Windows.

L'output predefinito di Get-NetTCPConnection non include l'ID processo per qualche motivo ed è un po 'di confusione. Tuttavia, è sempre possibile ottenerlo formattando l'output. La proprietà che stai cercando è OwningProcess .

  • Se vuoi scoprire l'ID del processo che sta ascoltando sulla porta 443, esegui questo comando:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-List
    
    LocalAddress   : ::
    LocalPort      : 443
    RemoteAddress  : ::
    RemotePort     : 0
    State          : Listen
    AppliedSetting :
    OwningProcess  : 4572
    CreationTime   : 02.11.2016 21:55:43
    OffloadState   : InHost
    
  • Formatta l'output su una tabella con le proprietà che cerchi:

    PS C:\> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess
    
    LocalAddress LocalPort  State OwningProcess
    ------------ ---------  ----- -------------
    ::                 443 Listen          4572
    0.0.0.0            443 Listen          4572
    
  • Se vuoi scoprire un nome del processo, esegui questo comando:

    PS C:\> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess
    
    Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
    -------  ------    -----      -----     ------     --  -- -----------
    143      15     3448      11024              4572   0 VisualSVNServer
    

L'opzione -b menzionata nella maggior parte delle risposte richiede di avere privilegi amministrativi sulla macchina. Non hai davvero bisogno di diritti elevati per ottenere il nome del processo!

Trova il pid del processo in esecuzione nel numero di porta (ad es. 8080)

netstat -ano | findStr "8080"

Trova il nome del processo per pid

tasklist /fi "pid eq 2216"


Netstat -a mostra tutte le porte di connessione e di ascolto -b visualizza gli eseguibili -n non risolve i nomi degli host (forma numerica) -un processo proprietario

netstat -bano | findstr "7002"

netstat -ano > ano.txt 

nirsoft.net/utils/cports.html aiuta a cercare e filtrare


Per chi usa Powershell, prova Get-NetworkStatistics :

> Get-NetworkStatistics | where Localport -eq 8000


ComputerName  : DESKTOP-JL59SC6
Protocol      : TCP
LocalAddress  : 0.0.0.0
LocalPort     : 8000
RemoteAddress : 0.0.0.0
RemotePort    : 0
State         : LISTENING
ProcessName   : node
PID           : 11552

Per ottenere un elenco di tutti gli ID di processo proprietari associati a ciascuna connessione:

netstat -ao |find /i "listening"

Se vuoi uccidere qualsiasi processo hai l'id e usa questo comando, in modo tale che la porta diventi libera

Taskkill /F /IM pidof a process

Raccomando CurrPorts da NirSoft.

CurrPorts può filtrare i risultati visualizzati. TCPView non ha questa caratteristica.

Nota: è possibile fare clic con il pulsante destro del mouse sulla connessione socket di un processo e selezionare "Chiudi connessioni TCP selezionate" (è possibile farlo anche in TCPView). Questo spesso corregge i problemi di connettività che ho con Outlook e Lync dopo che ho cambiato VPN. Con CurrPorts, puoi anche chiudere le connessioni dalla riga di comando con il parametro "/ close".


Se la modifica della porta non funziona:

Passaggio 1: vai ai servizi cercando "servizi" in Windows.

Step-2: Ordina tutti i servizi in ordine alfabetico. (Non necessario)

Step-3: Interrompere qualsiasi servizio correlato a MYSQL.

Step-4: Avvia mysql da xampp.


Segui questi strumenti: - Da cmd : - C:\> netstat -anob con privilegio di amministratore .

http://technet.microsoft.com/en-us/sysinternals/bb896653 - Process Explorer

http://technet.microsoft.com/en-us/sysinternals/bb896645 - Dump del processo

http://technet.microsoft.com/en-us/sysinternals/bb896644 - Port Monitor

Tutto da sysinternals.com

Se vuoi solo conoscere il processo in esecuzione e i thread in ogni processo, ti consiglio di conoscere wmic . Meraviglioso strumento per la linea cmd, che ti dà molto più di quanto tu possa sapere.

Exampe: -

c:\> wmic process list brief /every:5

Il comando sopra mostrerà tutta la lista dei processi in breve ogni 5 secondi. Per saperne di più, puoi andare con /? comando di Windows, per esempio,

c:\>wmic /?
c:\>wmic process /?
c:\>wmic prcess list /?

E così via e così via. :)


Utilizzare TCPView se si desidera una GUI per questo. È la vecchia app Sysinternals che Microsoft ha comprato.


netstat -a -o Mostra il PID del processo in esecuzione su una particolare porta.

Tieni presente l'id del processo e vai alla scheda Gestione attività e servizi o dettagli e termina il processo che ha lo stesso PID.

Quindi puoi uccidere un processo in esecuzione su una particolare porta in Windows.


netstat -ao e netstat -ab ti dicono l'applicazione, ma se non sei amministratore otterrai "L'operazione richiesta richiede l'elevazione".

Non è l'ideale, ma se usi sysinternals Process Explorer puoi andare alle proprietà dei processi specifici e guardare la scheda TCP per vedere se stanno usando la porta a cui sei interessato. Un po 'di ago e pagliaio, ma forse aiuterà qualcuno ....


C:\> netstat -a -b

(aggiungi -n per fermarlo cercando di risolvere i nomi degli host, il che lo renderà molto più veloce)

Nota il consiglio di Dane per TCPView . Sembra molto utile!

-a Visualizza tutte le connessioni e le porte di ascolto.

-b Visualizza l'eseguibile coinvolto nella creazione di ogni connessione o porta di ascolto. In alcuni casi, i file eseguibili noti ospitano più componenti indipendenti e in questi casi viene visualizzata la sequenza di componenti coinvolti nella creazione della connessione o della porta di ascolto. In questo caso il nome dell'eseguibile è in [] in basso, in alto c'è il componente chiamato, e così via fino al raggiungimento del TCP / IP. Si noti che questa opzione può richiedere molto tempo e fallirà se non si dispone di autorizzazioni sufficienti.

-n Visualizza indirizzi e numeri di porta in forma numerica.

-o Visualizza l'ID del processo proprietario associato a ciascuna connessione.


netstat -aon | find /i "listening"




port