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’s→ Accessoires→ Systeemwerkset→ Broncontrole
-
of voer
resmon.exe
uit, -
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 /i
nodig 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%
-
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”
-
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.
-
Zoek de poort waarop u luistert onder “Lokaal adres”
-
Bekijk de processnaam direct onder dat.
Opmerking: om het proces onder Task Manager
te vinden
-
Noteer de PID (Process Identifier) naast de poort waar u naar kijkt.
-
Open Windows Task Manager.
-
Selecteer het tabblad Processen.
-
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 9000
moet 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 de5
de sup>element in die regel) en doorgegeven aan het volgende commandotasklist /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 netstat
te 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:
-
Ga naar uitvoeren → typ cmd → druk op Enter.
-
Schrijf het volgende commando…
netstat -aon | findstr [port number]
(Opmerking: gebruik geen vierkante haken.)
-
Druk op Enter…
-
Dan geeft cmd je de details van de service die op die poort draait, samen met de PID.
-
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-NetTCPConnection
cmdlet. Ik denk dat het ook zou moeten werken op oudere Windows-versies.
De standaarduitvoer van Get-NetTCPConnection
bevat 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
-
Open de opdrachtprompt – start → Uitvoeren →
cmd
, of het menu Start → Alle programma’s → Accessoires → Command Prompt . -
Type
netstat -aon | findstr '[port_number]'
Vervang de [port_number]
met de werkelijke poortnummer dat u wilt controleren en hit Enter kbd>.
- 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.
-
Type
tasklist | findstr '[PID]'
Vervang [PID]
met het nummer uit de bovenstaande stap en hit Enter kbd>.
- 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 -ao
en netstat -ab
vertellen 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 kill
Naar Stop-Process
Voor meer PowerShell-achtige taal
Antwoord 22
Volg deze hulpmiddelen: van cmd : C:\> netstat -anob
Met -beheerder Privileges.
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-String
wordt gebruikt om de lange uitvoer vannetstat
voor de relevante regels te filteren.-Pattern
test elke regel met een reguliere expressie.-Context 0,1
levert 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 PID
van 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"