Jak można dowiedzieć się, który proces nasłuchuje na porcie TCP lub UDP w systemie Windows?
Jak można dowiedzieć się, który proces nasłuchuje na porcie TCP lub UDP w systemie Windows?
30 answers
Nowa odpowiedź, powershell
TCP
Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess
UDP
Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess
Stara odpowiedź, cmd
C:\> netstat -a -b
(Dodaj -N , aby powstrzymać próbę rozwiązania nazw hostów, co znacznie przyspieszy.)
Uwaga zalecenie Dane dla TCPView. Wygląda bardzo przydatnie!
-a wyświetla wszystkie połączenia i porty nasłuchowe.
-b wyświetla plik wykonywalny zaangażowany w tworzenie każdego połączenia lub portu nasłuchującego. W niektórych przypadkach dobrze znane pliki wykonywalne obsługują wiele niezależnych komponentów i w takich przypadkach wyświetlana jest sekwencja komponentów zaangażowanych w tworzenie połączenia lub portu nasłuchowego. W tym przypadku nazwa pliku wykonywalnego znajduje się w [] na dole, na górze jest komponent, który wywołał, i tak dalej, dopóki nie został osiągnięty protokół TCP/IP. Pamiętaj, że ta opcja może być czasochłonna i nie powiedzie się, jeśli nie masz wystarczających uprawnień.
-N wyświetla adresy i numery portów numerycznie forma.
-o wyświetla identyfikator procesu związanego z każdym połączeniem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-23 10:26:40
Jest natywny GUI Dla Windows:
- menu Start → Wszystkie programy → Akcesoria → Narzędzia systemowe → Resource Monitor
Lub Run resmon.exe
,
lub z zakładki Task Manager ' s performance.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:32:25
Dla Windows:
netstat -aon | find /i "listening"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-09 20:30:27
Użyj TCPView jeśli chcesz mieć do tego GUI. To stara aplikacja Sysinternals , którą Microsoft wykupił.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:21:36
Przełącznik-b wymieniony w większości odpowiedzi wymaga posiadania uprawnień administracyjnych na maszynie. Tak naprawdę nie potrzebujesz podwyższonych praw, aby uzyskać nazwę procesu!
Znajdź pid procesu uruchomionego w numerze portu (np., 8080)
netstat -ano | findStr "8080"
Find the process name by pid
tasklist /fi "pid eq 2216"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 11:24:04
Możesz uzyskać więcej informacji, jeśli uruchomisz następujące polecenie:
netstat -aon | find /i "listening" |find "port"
Użycie polecenia 'Find' pozwala na filtrowanie wyników. find /i "listening"
wyświetli tylko porty, które nasłuchują. UWAGA, Musisz /i
zignorować wielkość liter, w przeciwnym razie wpisz find "LISTENING". | find "port"
ograniczy wyniki Tylko do tych zawierających konkretny numer portu. Zauważ, że w tym przypadku będzie również filtrować wyniki, które mają numer portu w dowolnym miejscu w łańcuchu odpowiedzi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:28:57
-
Otwórz okno wiersza polecenia (jako Administrator) z "Start \ Search box "wprowadź " cmd", a następnie kliknij prawym przyciskiem myszy na " cmd.exe "i wybierz" Uruchom jako Administrator "
-
Wprowadź następujący tekst, a następnie naciśnij Enter.
netstat -abno
-a wyświetla wszystkie połączenia i porty nasłuchowe.
-b wyświetla plik wykonywalny biorący udział w tworzeniu każdego połączenia lub port nasłuchowy. W niektórych przypadkach dobrze znany host wykonywalnych wielu niezależnych komponentów, a w takich przypadkach Sekwencja elementów biorących udział w tworzeniu połączenia lub wyświetlany jest port nasłuchu. W tym przypadku wykonywalny nazwa znajduje się w [] na dole, na górze jest komponent, który nazywa, i tak dalej, dopóki nie zostanie osiągnięty protokół TCP / IP. Zauważ, że ta opcja może być czasochłonne i zawiedzie, chyba że masz wystarczającą uprawnienia.
-n Wyświetla adresy i numery portów w postaci numerycznej.
-o wyświetla identyfikator procesu związanego z każdym połączeniem.
-
Znajdź port, na którym nasłuchujesz pod "adres lokalny"
Spójrz na nazwę procesu bezpośrednio pod nią.
Uwaga: aby znaleźć proces w Menedżerze Zadań
Zwróć uwagę na PID (identyfikator procesu) obok portu, na który patrzysz.
Otwarte Okna Menedżer Zadań.
Wybierz kartę Procesy.
-
Poszukaj PID, który zauważyłeś, gdy wykonałeś netstat w kroku 1.
Jeśli nie widzisz kolumny PID, kliknij Widok / Wybierz kolumny. Wybierz PID.
Upewnij się, że wybrano opcję "Pokaż procesy od wszystkich użytkowników".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-15 02:41:50
Pobierz PID i nazwę obrazu
Użyj tylko jednego polecenia:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
Gdzie {[6] } należy zastąpić numerem portu.
Wyjście będzie zawierało coś takiego:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
Explanation:
-
Iteruje przez każdą linię z wyjścia następującego polecenia:
netstat -aon | findstr 9000
-
Z każdej linii wydobywany jest PID (
%a
- nazwa nie jest tu ważna) (PID jest5
th element w tej linii) i przekazane do następującego poleceniatasklist /FI "PID eq 5312"
Jeśli chcesz pominąć nagłówek i zwrócić wiersz polecenia , możesz użyć:
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
Wyjście:
java.exe 5312 Services 0 130,768 K
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 17:56:55
Najpierw znajdujemy ID procesu tego konkretnego zadania, które musimy wyeliminować, aby uzyskać wolny port:
Typ
netstat -n -a -o
Po wykonaniu tego polecenia w wierszu polecenia Windows (cmd), wybierz pid, który myślę, że ostatnia kolumna. Załóżmy, że to jest 3312.
Teraz wpisz
taskkill /F /PID 3312
Możesz teraz sprawdzić krzyżowo, wpisując komendę netstat
.
Uwaga: czasami System Windows nie pozwala na uruchomienie tego polecenia bezpośrednio na CMD, więc najpierw musisz przejść z tymi krokami:
Z menu start - > wiersz polecenia (kliknij prawym przyciskiem myszy Wiersz polecenia i uruchom jako administrator)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:35:07
Aby uzyskać listę wszystkich identyfikatorów procesów związanych z każdym połączeniem:
netstat -ao |find /i "listening"
JeĹ "li chcesz zabiÄ ‡ jakiĹ" proces posiadajÄ ... ID i uĺźywaj tego polecenia, aby port staĹ ' siÄ ™ wolny
Taskkill /F /IM PID of a process
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:30:59
Uzyskanie numeru portu z PID w systemie Windows jest bardzo proste.
Oto kroki:
Przejdź do Uruchom → wpisz cmd → naciśnij Enter .
-
Napisz następujące polecenie...
netstat -aon | findstr [port number]
(uwaga: nie podawaj nawiasów kwadratowych.)
Naciśnij Enter ...
Następnie cmd poda szczegóły usługi działającej na tym porcie wraz z PID.
Otwórz Menedżera zadań i naciśnij Zakładka service i dopasuj PID do cmd i tyle.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:37:59
Aby dowiedzieć się, który konkretny proces (PID) używa którego portu:
netstat -anon | findstr 1234
Gdzie 1234 jest PID Twojego procesu. [Przejdź do Menedżera zadań → Zakładka usługi / procesy, aby dowiedzieć się PID aplikacji.]Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:46:24
W PowerShell 5 na Windows 10 lub Windows Server 2016 Uruchom Get-NetTCPConnection
cmdlet. Myślę, że powinno działać również na starszych wersjach systemu Windows.
Domyślne wyjście Get-NetTCPConnection
z jakiegoś powodu nie zawiera identyfikatora procesu i jest nieco mylące. Jednak zawsze można go uzyskać formatując wyjście. Nieruchomość, której szukasz to OwningProcess
.
-
Jeśli chcesz dowiedzieć się o ID procesu nasłuchującego na porcie 443, uruchom to polecenie:
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
-
Sformatuj wyjście do tabeli z właściwościami, których szukasz:
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
-
Jeśli chcesz poznać nazwę procesu, uruchom to polecenie:
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-04 10:00:52
Wystarczy otworzyć powłokę poleceń i wpisać (mówiąc, że twój port to 123456):
netstat -a -n -o | find "123456"
Zobaczysz wszystko, czego potrzebujesz.
Nagłówki to:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
To jest jak wspomniano tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:42:15
Jeśli chcesz użyć do tego narzędzia GUI, jest Sysinternals ' TCPView.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:21:57
Netstat:
- - A wyświetla wszystkie porty połączeniowe i nasłuchowe
- - b wyświetla pliki wykonywalne
- - n stop resolve hostnames (postać numeryczna)
-
- o proces posiadania
netstat -bano | findstr "7002" netstat -ano > ano.txt
Narzędzie Currports pomaga wyszukiwać i filtrować
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:45:43
Otwórz wiersz polecenia-start → Uruchom →
cmd
, lub menu start → Wszystkie programy → Akcesoria → wiersz polecenia .-
Typ
netstat -aon | findstr '[port_number]'
Zastąp [port_number]
rzeczywistym numerem portu, który chcesz sprawdzić i naciśnij wprowadź .
- jeśli port jest używany przez jakąkolwiek aplikację, wtedy zostanie wyświetlony jego opis. Numer, który jest wyświetlany w ostatniej kolumnie listy, jest PID (identyfikator procesu) tej aplikacji. Zanotuj to.
-
Typ
tasklist | findstr '[PID]'
Zastąp [PID]
liczbą z powyższego kroku i naciśnij wprowadź .
- zostanie wyświetlona nazwa aplikacji, która używa numeru portu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:48:53
Wpisz polecenie: netstat -aon | findstr :DESIRED_PORT_NUMBER
Na przykład, jeśli chcę znaleźć port 80: netstat -aon | findstr :80
Ta odpowiedź została pierwotnie zamieszczona na to pytanie .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:40:21
netstat -ao
i netstat -ab
powiedzieć aplikacji, ale jeśli nie jesteś administratorem systemu otrzymasz "żądana operacja wymaga elewacji".
Nie jest to idealne rozwiązanie, ale jeśli używasz Sysinternals' Process Explorer , możesz przejść do właściwości określonych procesów i spojrzeć na kartę TCP, aby zobaczyć, czy używają portu, który Cię interesuje. To trochę jak igła i stóg siana, ale może to komuś pomoże...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:30:25
Polecam CurrPorts {[2] } od NirSoft.
CurrPorts może filtrować wyświetlane wyniki. TCPView nie posiada tej funkcji.
Uwaga: możesz kliknąć prawym przyciskiem myszy połączenie z gniazdem procesu i wybrać" Zamknij wybrane połączenia TCP " (możesz to zrobić również w TCPView). To często rozwiązuje problemy z łącznością, które mam z Outlook i Lync po przełączeniu VPN. Dzięki CurrPorts możesz również zamykać połączenia z wiersza poleceń za pomocą parametru "/ close".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-02 17:37:31
Jednolinijkowe rozwiązanie, które mi pomaga, to ten. Po prostu zastąp 3000 swoim portem:
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id
Aby uzyskać więcej informacji na temat języka PowerShell, kliknij tutaj]}Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-16 21:27:40
Wykonaj następujące narzędzia: z cmd: C:\> netstat -anob
z uprawnieniami administratora .
Wszystkie z sysinternals.com.
Jeśli chcesz po prostu wiedzieć, że proces działa i wątki pod każdym procesem, polecam zapoznanie się z wmic
. Jest to wspaniałe narzędzie wiersza poleceń, które daje o wiele więcej, niż możesz wiedzieć.
Przykład:
c:\> wmic process list brief /every:5
Powyższe polecenie wyświetli listę wszystkich procesów w skrócie co 5 sekund. Aby dowiedzieć się więcej, możesz po prostu użyć polecenia /?
w systemie windows, na przykład
c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?
I tak dalej i tak dalej. :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-26 19:07:56
Użycie:
netstat -a -o
Pokazuje PID procesu uruchomionego na określonym porcie.
Pamiętaj o ID procesu i przejdź do Menedżera zadań i usług lub karty szczegóły i zakończ proces, który ma ten sam PID.
W ten sposób można zabić proces działający na określonym porcie w systemie Windows.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:27:41
Dla tych, którzy używają PowerShell, spróbuj 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:39:10
Programowo potrzebujesz rzeczy z iphlpapi.h, na przykład GetTcpTable2 (). Struktury takie jak MIB_TCP6ROW2 zawierają PID właściciela.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-05 18:16:10
Korzystanie Z PowerShell... ...to będzie twój przyjaciel (zamień 8080 na numer portu):
netstat -abno | Select-String -Context 0,1 -Pattern 8080
Przykładowe wyjście
> TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2920
[tnslsnr.exe]
> TCP [::]:8080 [::]:0 LISTENING 2920
[tnslsnr.exe]
Więc w tym przykładzie tnslsnr.exe (baza danych OracleXE) nasłuchuje na porcie 8080.
Szybkie wyjaśnienie
-
{[2] } jest używany do filtrowania długich wyjść
netstat
dla odpowiednich linii. -
-Pattern
testuje każdą linię względem wyrażenia regularnego. -
-Context 0,1
wyświetli 0 linii wiodących i 1 linia końcowa dla każdego dopasowania wzorca.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:43:11
Aby znaleźć pid, który używa portu 8000
netstat -aon | findstr '8000'
Aby zabić ten proces w windows
taskkill /pid pid /f
Gdzie pid jest identyfikatorem procesu, który otrzymujesz jako pierwsze polecenie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-14 06:13:43
W systemie Windows, jeśli chcesz znaleźć rzeczy nasłuchujące lub podłączone do portu 1234, wykonaj następujące polecenie w wierszu polecenia cmd:
netstat -na | find "1234"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-24 21:10:18
Jeśli ktoś potrzebuje odpowiednika dla macOS, tak jak ja, oto on:
lsof -i tcp:8080
Po uzyskaniu PID
procesu, możesz go zabić za pomocą:
kill -9 <PID>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-30 02:32:14
Użyj poniższego skryptu wsadowego, który pobiera nazwę procesu jako argument i daje netstat
wyjście dla procesu.
@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq %1" /fo csv') do call :Foo %%~F
goto End
:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------
netstat -ano |findstr %z%
goto :eof
:End
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 09:45:04