Командний рядок для перегляду конкретного порту


263

Чи є спосіб перевірити стан конкретного порту з командного рядка Windows? Я знаю, що я можу використовувати netstat для перевірки всіх портів, але netstat повільний і дивлячись на певний порт, ймовірно, не так.


6
netstatповільно, якщо ви не використовуєте -nкомутатор, це означає, що він повинен робити багато DNS-пошуку.
Маркіз Лорн

Відповіді:


282

Ось просте рішення пошуку порту ...

У cmd:

netstat -na | find "8080"

У басі:

netstat -na | grep "8080"

В PowerShell:

netstat -na | Select-String "8080"

3
Як використовувати цю команду? Я хочу знати, чи працює цей номер порту чи немає посилання: - [посилання] (https: //.localhost: 9043 / ibm / console / login.do)
Mayur Ingle

8
Також варто згадати -oпрапор (тобто -naoтут), щоб включити PID процесу за допомогою порту.
Стів Чемберс

104

Ви можете використовувати netstatкомбіновані з -npпрапорами та трубою команди findабо findstr.

Основне використання є таким:

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

Так, наприклад, щоб перевірити порт 80 на TCP, ви можете зробити це: netstat -np TCP | find "80" що в кінцевому підсумку дає такий вид виводу:

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

Як бачите, це показує лише з'єднання на порту 80 для протоколу TCP.


73

Я використовую:

netstat –aon | find "<port number>"

тут o представляє ідентифікатор процесу. тепер ви можете робити будь-що з ідентифікатором процесу. Для припинення процесу, наприклад, використовуйте:

taskkill /F /pid <process ID>

проста і чітка відповідь, спасибі
Мохіт Сінгх

69

коли у мене проблеми з WAPP apache, я використовую цей код, щоб знайти, яка програма використовує порт 80.

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

введіть тут опис зображення

3068 є PID, тому я можу знайти його у менеджера завдань і зупинити цей процес.


Дуже приємно, велике спасибі! Спеціально для TCP я використовую наступне: netstat -o -nap TCP | findstr 0,0: 80
Denyoha

20

Як зазначено в іншому місці: використовуйте netstat за допомогою відповідних комутаторів, а потім фільтруйте результати за допомогою пошуку [str]

Основні:

netstat -an | find ":N"

або

netstat -a -n | find ":N"

Щоб знайти іноземний порт, ви можете скористатися:

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

Щоб знайти місцевий порт, який ви можете використовувати:

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

Де N - номер порту, який вас цікавить.

-n гарантує, що всі порти будуть чисельними, тобто не повертаються як переведені до імен служб.

-a забезпечить пошук усіх підключень (TCP, UDP, прослуховування ...)

У findрядку ви повинні включити двокрапку як класифікатор порту, інакше число може відповідати місцевим або іноземним адресам.

Ви можете додатково звузити пошук, використовуючи інші мережеві комутатори за необхідності ...

Подальше читання (^ 0 ^)

netstat /?

find /?

findstr /?

9
netstat -a -n | find /c "10.240.199.9:8080"

він дасть вам кількість розеток, активних для певного IP та порту (номер порту сервера)


3
Це не працює для оболонки живлення для Windows 2012 R2 і отримав результат якFIND: Parameter format not correct
Chaminda Bandara

6

Для користувача Windows 8: Відкрийте командний рядок, введіть netstat -an | знайдіть "номер вашого порту" , введіть.

Якщо відповідь надходить як LISTENING, тоді використовується порт, інакше він безкоштовний.


2

Щоб покращити відповідь @ EndUzr :

Щоб знайти іноземний порт (IPv4 або IPv6), ви можете скористатися:

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

Щоб знайти локальний порт (IPv4 або IPv6), ви можете скористатися:

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

Де N - номер порту, який вас цікавить. Перемикач "/ r" повідомляє йому обробити його як регулярний вираз. Перемикач "/ c" дозволяє findstr включати пробіли в рядки пошуку, а не обробляти простір як роздільник рядка пошуку. Цей доданий простір запобігає поводженню довших портів - наприклад, ": 80" vs ": 8080" та інші проблеми зміни портів.

Щоб перелічити віддалені з'єднання з локальним сервером RDP, наприклад:

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

Або побачити, хто торкається вашого DNS:

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

Якщо ви хочете виключити лише локальні порти, ви можете використати ряд винятків із "/ v" та уникнути символів із зворотною косою рисою:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"

1

Для порту 80 командою було б: netstat -an | знайти "80" Для порту n командою буде: netstat -an | знайти "n"

Тут netstat - це інструкція до вашої машини

-a: Відображає всі підключення та порти прослуховування -n: Відображає всі адреси та інструкції в цифровому форматі (Це потрібно, тому що вихід з -а може містити назви машин)

Потім знайдіть команду "Вирівняти узор" виводу попередньої команди.


0

Це вам допоможе

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both

0

У RHEL 7 я використовую цю команду для фільтра декількох портів у стані LISTEN:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

-1

Ця команда покаже всі порти та адресу призначення:

netstat -f 

1
Прохання було з’ясувати, чи використовується конкретний порт.
Ro Yo Mi

-5

Використовуйте команду lsof "lsof -i tcp: port #", ось приклад.

$ 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)

4
Мінус точки, тому що це не команда Windows. Якщо він доступний у Windows, немає обговорення, як його придбати.
Ro Yo Mi

1
Не відповідає на питання ОП. -1.
FractalSpace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.