Hoe kom je erachter welk proces luistert op een TCP- of UDP-poort op Windows?

Hoe kom je erachter welk proces luistert op een TCP- of UDP-poort op Windows?


Antwoord 1, autoriteit 100%

Nieuw antwoord, powershell

TCP

Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess

UDP

Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess

Oud antwoord, cmd

C:\> netstat -a -b

(Voeg -ntoe om te voorkomen dat het hostnamen probeert op te lossen, wat het een stuk sneller zal maken.)

Let op de aanbeveling van Dane voor TCPView. Het ziet er erg handig uit!

-aToont alle verbindingen en luisterpoorten.

-bToont het uitvoerbare bestand dat betrokken is bij het maken van elke verbinding of luisterpoort. In sommige gevallen hosten bekende uitvoerbare bestanden meerdere onafhankelijke componenten, en in deze gevallen wordt de volgorde van componenten weergegeven die betrokken zijn bij het maken van de verbinding of de luisterpoort. In dit geval staat de naam van het uitvoerbare bestand in [] onderaan, bovenaan staat het onderdeel dat het heeft aangeroepen, enzovoort, totdat TCP/IP werd bereikt. Merk op dat deze optie tijdrovend kan zijn en zal mislukken tenzij je voldoende rechten hebt.

-nGeeft adressen en poortnummers weer in numerieke vorm.

-oGeeft de proces-ID weer die aan elke verbinding is gekoppeld.


Antwoord 2, autoriteit 79%

Er is een native GUI voor Windows:

  • Startmenu → Alle programma’sAccessoiresSysteemwerksetBroncontrole

  • of voer resmon.exeuit,

  • of van TaskManager→ tabblad Prestaties.


Antwoord 3, autoriteit 9%

Voor Windows:

netstat -aon | find /i "listening"

Antwoord 4, autoriteit 8%

Gebruik TCPViewals je hiervoor een GUI wilt. Het is de oude Sysinternals-toepassing die Microsoft heeft uitgekocht.


Antwoord 5, autoriteit 6%

Voor de schakeloptie -b die in de meeste antwoorden wordt genoemd, moet u beheerdersrechten op de computer hebben. Je hebt niet echt verhoogde rechten nodig om de procesnaam te krijgen!

Zoek de pid van het proces dat wordt uitgevoerd in het poortnummer (bijv. 8080)

netstat -ano | findStr "8080"

Zoek de procesnaam op pid

tasklist /fi "pid eq 2216"


Antwoord 6, autoriteit 3%

U kunt meer informatie krijgen als u de volgende opdracht uitvoert:

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

met de opdracht ‘Zoeken’ kunt u de resultaten filteren. find /i "listening"geeft alleen poorten weer die ‘Luisteren’. Let op, je hebt de /inodig om hoofdletters te negeren, anders typ je find “LUISTEREN”. | find "port"zal de resultaten beperken tot alleen de resultaten die het specifieke poortnummer bevatten. Let op, hierop filtert het ook in resultaten die het poortnummer ergens in de antwoordreeks hebben.


Antwoord 7, autoriteit 3%

  1. Open een opdrachtpromptvenster (als beheerder) van “Start \ Search Box” Voer “CMD” in en klik vervolgens met de rechtermuisknop op “cmd.exe” en selecteer “Voer als beheerder”

  2. Voer de volgende tekst in en druk op ENTER.

    netstat -abno

    -A Geeft alle verbindingen en luisterpoorten weer.

    -B Geeft het uitvoerbare bestand in bij het maken van elke verbinding of
    Luisteren poort. In sommige gevallen bekende executables host
    meerdere onafhankelijke componenten, en in deze gevallen de
    Volgorde van componenten die betrokken zijn bij het maken van de verbinding
    of luisterpoort wordt weergegeven. In dit geval het uitvoerbare bestand
    naam is in [] onderaan, bovenop is het onderdeel dat het wordt genoemd,
    enzovoort totdat TCP / IP werd bereikt. Merk op dat deze optie
    kan tijdrovend zijn en zullen falen tenzij je voldoende hebt
    Machtigingen.

    -N Geeft adressen en poortnummers weer in numerieke vorm.

    -o Geeft het bezittende proces-ID in verband met elke verbinding weer.

  3. Zoek de poort waarop u luistert onder “Lokaal adres”

  4. Bekijk de processnaam direct onder dat.

Opmerking: om het proces onder Task Manager

te vinden

  1. Noteer de PID (Process Identifier) ​​naast de poort waar u naar kijkt.

  2. Open Windows Task Manager.

  3. Selecteer het tabblad Processen.

  4. Zoek naar de PID die u hebt opgemerkt toen u de netstat in stap 1 hebt gedaan.

    • Als u geen PID-kolom ziet, klikt u op Kolommen bekijken / selecteren. Selecteer PID.

    • Zorg ervoor dat “Toonprocessen van alle gebruikers” zijn geselecteerd.


Antwoord 8, Autoriteit 2%

Get PID en beeldnaam

Gebruik slechts één commando:

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

waar 9000moet worden vervangen door uw poortnummer.

De outputzal zoiets als dit bevatten:

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

Uitleg:

  • het herhaalt elke regel van de uitvoer van het volgende commando:

    netstat -aon | findstr 9000
    
  • van elke regel wordt de PID (%a– de naam is hier niet belangrijk) geëxtraheerd (PID is de 5deelement in die regel) en doorgegeven aan het volgende commando

    tasklist /FI "PID eq 5312"
    

Als je de headeren de terugkeer van de opdrachtpromptwilt overslaan, kun je het volgende gebruiken:

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

Uitvoer:

java.exe                      5312 Services                   0    130,768 K

Antwoord 9, autoriteit 2%

Eerst vinden we het proces-ID van die specifieke taak die we moeten elimineren om de poort vrij te krijgen:

Type

netstat -n -a -o

Na het uitvoeren van deze opdracht in de Windows-opdrachtregelprompt (cmd), selecteert u de pid die volgens mij de laatste kolom is. Stel dat dit 3312 is.

Typ nu

taskkill /F /PID 3312

Je kunt nu kruiscontroles uitvoeren door de opdracht netstatte typen.

OPMERKING: soms staat Windows u niet toe om deze opdracht rechtstreeks op CMD uit te voeren, dus u moet eerst de volgende stappen volgen:

Vanuit het startmenu -> opdrachtprompt (klik met de rechtermuisknop op de opdrachtprompt en voer het uit als beheerder)


Antwoord 10

Om een lijst te krijgen van alle proces-ID’s die aan elke verbinding zijn gekoppeld:

netstat -ao |find /i "listening"

Als je een proces wilt beëindigen, gebruik dan de ID en gebruik deze opdracht, zodat de poort vrij komt

Taskkill /F /IM PID of a process

Antwoord 11

Het is heel eenvoudig om het poortnummer van een PID in Windows te krijgen.

Dit zijn de volgende stappen:

  1. Ga naar uitvoeren → typ cmd → druk op Enter.

  2. Schrijf het volgende commando…

    netstat -aon | findstr [port number]
    

    (Opmerking: gebruik geen vierkante haken.)

  3. Druk op Enter

  4. Dan geeft cmd je de details van de service die op die poort draait, samen met de PID.

  5. Open Taakbeheer en klik op het tabblad Service en vergelijk de PID met die van de cmd, en dat is alles.


Antwoord 12

Met PowerShell 5 op Windows 10 of Windows Server 2016, voer Get-NetTCPConnectioncmdlet. Ik denk dat het ook zou moeten werken op oudere Windows-versies.

De standaarduitvoer van Get-NetTCPConnectionbevat om de een of andere reden geen proces-ID en het is een beetje verwarrend. U kunt het echter altijd krijgen door de uitvoer te formatteren. De woning die u zoekt is OwningProcess.

  • Als je de ID wilt weten van het proces dat luistert op poort 443, voer je deze opdracht uit:

     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
    
  • Maak de uitvoer op in een tabel met de eigenschappen die u zoekt:

     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
    
  • Als je de naam van het proces wilt weten, voer je deze opdracht uit:

     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
    

Antwoord 13

Om erachter te komen welk specifiek proces (PID) welke poort gebruikt:

netstat -anon | findstr 1234

Waarbij 1234 de PID van uw proces is. [Ga naar Taakbeheer → tabblad Services/Processen om de PID van uw toepassing te achterhalen.]


Antwoord 14

Open gewoon een opdrachtshell en typ (je zegt dat je poort 123456 is):

netstat -a -n -o | find "123456"

Je zult alles zien wat je nodig hebt.

De koppen zijn:

Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111

Dit is zoals vermeld hier .


Antwoord 15

Als u wilt een GUI tool gebruiken om dit te doen is er Sysinternals ‘TCPView .


Antwoord 16

  1. Open de opdrachtprompt – start → Uitvoeren cmd, of het menu Start → Alle programma’s Accessoires Command Prompt .

  2. Type

    netstat -aon | findstr '[port_number]'
    

Vervang de [port_number]met de werkelijke poortnummer dat u wilt controleren en hit Enter .

  1. Als de poort wordt gebruikt door een toepassing, dan detail van de toepassing wordt weergegeven. Het nummer, dat wordt getoond bij de laatste kolom van de lijst, de PID (proces ID) van dit verzoek. Noteer deze.
  2. Type

    tasklist | findstr '[PID]'
    

Vervang [PID]met het nummer uit de bovenstaande stap en hit Enter .

  1. U zult zien de naam van de toepassing die gebruik maakt van uw poortnummer opgeven.

Antwoord 17

Netstat:

  • -a geeft alle aansluiting en luisterende poorten
  • -b displays executables
  • -n stop hostnamen (numerieke vorm)
  • -O bezit proces

    netstat -bano | findstr "7002"
    netstat -ano > ano.txt 
    

De CurrPorts tool helpt om te zoeken en filter


Antwoord 18

Typ het commando: netstat -aon | findstr :DESIRED_PORT_NUMBER

Als ik bijvoorbeeld poort 80 wil vinden: netstat -aon | findstr :80

Dit antwoord is oorspronkelijk gepost op deze vraag.


Antwoord 19

netstat -aoen netstat -abvertellen u de toepassing, maar als u geen systeembeheerder bent, krijgt u "De gevraagde bewerking vereist verhoging".

Het is niet ideaal, maar als u Procesverkennervan Sysinternals gebruikt, kunt u naar specifieke eigenschappen van processen en kijk naar het TCP-tabblad om te zien of ze de poort gebruiken waarin je geïnteresseerd bent. Het is een beetje een speld en hooiberg, maar misschien helpt het iemand...


Antwoord 20

Ik raad CurrPortsvan NirSoft aan.

CurrPorts kan de weergegeven resultaten filteren. TCPViewheeft deze functie niet.

Opmerking: u kunt met de rechtermuisknop op de socketverbinding van een proces klikken en "Sluit geselecteerde TCP-verbindingen" selecteren (u kunt dit ook doen in TCPView). Dit lost vaak verbindingsproblemen op die ik heb met Outlook en Lync nadat ik van VPN wissel. Met CurrPorts kun je ook verbindingen sluiten vanaf de opdrachtregel met de parameter "/close".


Antwoord 21

Een oplossing met één regel die mij helpt, is deze. Vervang gewoon 3000 door uw poort:

$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id

EDIT: gewijzigd killNaar Stop-ProcessVoor meer PowerShell-achtige taal


Antwoord 22

Volg deze hulpmiddelen: van cmd : C:\> netstat -anobMet -beheerder Privileges.

procesverkenner

procesdump

poortmonitor

allemaal van sysinternals.com.

Als u het proces van het proces en de threads onder elk proces wilt weten, raad ik aan om te leren over wmic. Het is een prachtige opdrachtregelgereedschap, wat u veel meer geeft dan u weet.

Voorbeeld:

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

De bovenstaande opdracht toont elke 5 seconden een alle procestijst in het kort. Om meer te weten, kun je gewoon gaan met /?opdracht van Windows, bijvoorbeeld,

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

enzovoort enzovoort. 🙂


Antwoord 23

Gebruik:

netstat -a -o

Dit toont de PID van het proces dat op een bepaalde poort wordt uitgevoerd.

Houd rekening met het proces-ID en ga naar Task Manager en Services of Details-tabblad en eindig het proces dat dezelfde PID heeft.

U kunt dus een proces doden dat op een bepaalde poort in Windows wordt uitgevoerd.


Antwoord 24

Voor degenen die PowerShell gebruiken, probeer 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

Antwoord 25

Pid vinden wie poort 8000 gebruikt

netstat -aon | findstr '8000'

Om dat proces in Windows te stoppen

taskkill /pid pid /f

waarbij pid het proces-ID is dat je van het eerste commando krijgt


Antwoord 26

netstat -aof | findstr :8080(Verander 8080 voor elke poort)


Antwoord 27

Programmatisch heb je dingen nodig van iphlpapi.h, bijvoorbeeld GetTcpTable2(). Structuren zoals MIB_TCP6ROW2bevatten de PID van de eigenaar .


Antwoord 28

PowerShell gebruiken...
...dit zou je vriend zijn (vervang 8080 door je poortnummer):

netstat -abno | Select-String -Context 0,1 -Pattern 8080

Voorbeelduitvoer

>   TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING         2920
   [tnslsnr.exe]
>   TCP    [::]:8080              [::]:0                 LISTENING         2920
   [tnslsnr.exe]

Dus in dit voorbeeld luistert tnslsnr.exe (OracleXE-database) op poort 8080.

Snelle uitleg

  • Select-Stringwordt gebruikt om de lange uitvoer van netstatvoor de relevante regels te filteren.
  • -Patterntest elke regel met een reguliere expressie.
  • -Context 0,1levert 0 voorlooplijnen en 1 achterlijn voor elke patroonovereenkomst.

Antwoord 29

In het geval iemand een equivalent voor macOS nodig heeft zoals ik, hier is het:

lsof -i tcp:8080

Nadat je de PIDvan het proces hebt gekregen, kun je het beëindigen met:

kill -9 <PID>


Antwoord 30

Voor Windows, als je dingen wilt vinden die luisteren of zijn aangesloten op poort 1234, voer dan het volgende uit op de cmd-prompt:

netstat -na | find "1234"

Other episodes