Wiersz poleceń do przeglądania określonego portu

263

Czy istnieje sposób sprawdzenia stanu określonego portu z wiersza poleceń systemu Windows? Wiem, że mogę używać programu netstat do sprawdzania wszystkich portów, ale program netstat działa wolno i patrzenie na określony port prawdopodobnie nie jest.

użytkownik1580018
źródło
6
netstatjest powolny tylko wtedy, gdy nie używasz -nprzełącznika, co oznacza, że ​​musi wykonać wiele wyszukiwań DNS.
Markiz Lorne

Odpowiedzi:

282

Oto proste rozwiązanie wyszukiwania portów ...

W cmd:

netstat -na | find "8080"

W bash:

netstat -na | grep "8080"

W PowerShell:

netstat -na | Select-String "8080"
MD Naushad Alam
źródło
3
Jak korzystać z tego polecenia? Chcę wiedzieć, czy ten numer portu działa, czy nie link: - [link] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle
8
Warto również wspomnieć o -ofladze (tj. -naoTutaj), aby uwzględnić PID procesu korzystającego z portu.
Steve Chambers
104

Możesz użyć netstatkombinacji z -npflagami i potokiem do poleceń findlub findstr.

Podstawowe użycie jest takie:

netstat -np <protocol> | find "port #"

Na przykład, aby sprawdzić port 80 w TCP, możesz to zrobić: netstat -np TCP | find "80" co w rezultacie daje następujący rodzaj danych wyjściowych:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

Jak widać, pokazuje to tylko połączenia na porcie 80 dla protokołu TCP.

Rivasa
źródło
73

Używam:

netstat –aon | find "<port number>"

tutaj o oznacza identyfikator procesu. teraz możesz zrobić cokolwiek z identyfikatorem procesu. Aby zakończyć proces, na przykład użyj:

taskkill /F /pid <process ID>
Himadri Pant
źródło
prosta i wyraźna odpowiedź, Dzięki
Mohit Singh,
69

gdy mam problem z apache WAMP, używam tego kodu do znalezienia programu używającego portu 80.

netstat -o -n -a | findstr 0.0:80

wprowadź opis zdjęcia tutaj

3068 jest PID, więc mogę go znaleźć w menedżerze zadań i zatrzymać ten proces.

Mohsen Safari
źródło
Bardzo miło, wielkie dzięki! Specjalnie dla TCP używam następujących poleceń: netstat -o -nap TCP | findstr 0.0: 80
denyoha
20

Jak wspomniano w innym miejscu: użyj netstat z odpowiednimi przełącznikami, a następnie filtruj wyniki za pomocą find [str]

Najbardziej podstawowy:

netstat -an | find ":N"

lub

netstat -a -n | find ":N"

Aby znaleźć obcy port, możesz użyć:

netstat -an | findstr ":N[^:]*$"

Aby znaleźć port lokalny, którego możesz użyć:

netstat -an | findstr ":N.*:[^:]*$"

Gdzie N to numer portu, który Cię interesuje.

-n zapewnia, że ​​wszystkie porty będą numeryczne, tzn. nie zostaną zwrócone jako przetłumaczone na nazwy usług.

-a zapewni wyszukiwanie wszystkich połączeń (TCP, UDP, nasłuchiwanie ...)

W findciągu należy podać dwukropek jako kwalifikator portu, w przeciwnym razie liczba może być zgodna z adresem lokalnym lub obcym.

W razie potrzeby możesz zawęzić wyszukiwanie za pomocą innych przełączników netstat ...

Dalsza lektura (^ 0 ^)

netstat /?

find /?

findstr /?
EndUzr
źródło
9
netstat -a -n | find /c "10.240.199.9:8080"

da ci liczbę gniazd aktywnych dla określonego adresu IP i portu (numer portu serwera)

Uday Singh
źródło
3
To nie działa dla Windows Power Shell na Windows 2012 R2 i otrzymał wynik jakoFIND: Parameter format not correct
Chaminda Bandara
6

W systemie Windows 8: Otwórz wiersz polecenia, wpisz netstat -an | znajdź „swój numer portu” , wprowadź.

Jeśli odpowiedź przychodzi jak ODBIÓR, oznacza to, że port jest używany, w przeciwnym razie jest bezpłatny.

Pratik Roy
źródło
2

Aby poprawić odpowiedź @ EndUzr :

Aby znaleźć port obcy (IPv4 lub IPv6), możesz użyć:

netstat -an | findstr /r /c:":N [^:]*$"

Aby znaleźć port lokalny (IPv4 lub IPv6), możesz użyć:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

Gdzie N to numer portu, który Cię interesuje. Przełącznik „/ r” nakazuje mu przetworzenie go jako wyrażenie regularne. Przełącznik „/ c” pozwala findstrowi zawrzeć spacje w ciągach wyszukiwania zamiast traktować spację jako ogranicznik ciągu wyszukiwania. Ta dodatkowa przestrzeń zapobiega niewłaściwemu traktowaniu dłuższych portów - na przykład „: 80” vs „: 8080” i innym problemom z blokowaniem portów.

Aby wyświetlić listę połączeń zdalnych z lokalnym serwerem RDP, na przykład:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

Lub zobaczyć, kto dotyka Twojego DNS:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

Jeśli chcesz wykluczyć porty tylko lokalne, możesz użyć szeregu wyjątków z „/ v” i znaków specjalnych z odwrotnym ukośnikiem:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
Shawn
źródło
1

Dla portu 80 komenda wyglądałaby następująco: netstat -an | znajdź „80” W przypadku portu n polecenie brzmiałoby: netstat -an | znajdź „n”

Tutaj netstat jest instrukcją dla twojego komputera

-a: wyświetla wszystkie połączenia i nasłuchujące porty -n: wyświetla wszystkie adresy i instrukcje w formacie numerycznym (jest to wymagane, ponieważ dane wyjściowe z -a mogą zawierać nazwy maszyn)

Następnie polecenie find do „Pattern Match” danych wyjściowych poprzedniego polecenia.

subodhkarwa
źródło
0

To ci pomoże

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
Praca w
źródło
0

W RHEL 7 używam tego polecenia do filtrowania kilku portów w stanie LISTEN:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
źródło
-1

To polecenie pokaże wszystkie porty i ich adres docelowy:

netstat -f 
Dharmajulian
źródło
1
Żądaniem było sprawdzenie, czy używany jest określony port.
Ro Yo Mi
-5

Użyj polecenia lsof „lsof -i tcp: port #”, oto przykład.

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
kamienie333
źródło
4
Minus point, ponieważ nie jest to polecenie systemu Windows. Jeśli jest dostępny w systemie Windows, nie ma dyskusji na temat tego, jak go zdobyć.
Ro Yo Mi
1
Nie odpowiada na pytanie OP. -1.
FractalSpace,