Чи є спосіб перевірити стан конкретного порту з командного рядка Windows? Я знаю, що я можу використовувати netstat для перевірки всіх портів, але netstat повільний і дивлячись на певний порт, ймовірно, не так.
Чи є спосіб перевірити стан конкретного порту з командного рядка Windows? Я знаю, що я можу використовувати netstat для перевірки всіх портів, але netstat повільний і дивлячись на певний порт, ймовірно, не так.
Відповіді:
Ось просте рішення пошуку порту ...
У cmd:
netstat -na | find "8080"
У басі:
netstat -na | grep "8080"
В PowerShell:
netstat -na | Select-String "8080"
-oпрапор (тобто -naoтут), щоб включити PID процесу за допомогою порту.
Ви можете використовувати 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.
Я використовую:
netstat –aon | find "<port number>"
тут o представляє ідентифікатор процесу. тепер ви можете робити будь-що з ідентифікатором процесу. Для припинення процесу, наприклад, використовуйте:
taskkill /F /pid <process ID>
коли у мене проблеми з WAPP apache, я використовую цей код, щоб знайти, яка програма використовує порт 80.
netstat -o -n -a | findstr 0.0:80

3068 є PID, тому я можу знайти його у менеджера завдань і зупинити цей процес.
Як зазначено в іншому місці: використовуйте 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 /?
netstat -a -n | find /c "10.240.199.9:8080"
він дасть вам кількість розеток, активних для певного IP та порту (номер порту сервера)
FIND: Parameter format not correct
Для користувача Windows 8: Відкрийте командний рядок, введіть netstat -an | знайдіть "номер вашого порту" , введіть.
Якщо відповідь надходить як LISTENING, тоді використовується порт, інакше він безкоштовний.
Щоб покращити відповідь @ 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 *[^ ]*:[^ ]*"
Для порту 80 командою було б: netstat -an | знайти "80" Для порту n командою буде: netstat -an | знайти "n"
Тут netstat - це інструкція до вашої машини
-a: Відображає всі підключення та порти прослуховування -n: Відображає всі адреси та інструкції в цифровому форматі (Це потрібно, тому що вихід з -а може містити назви машин)
Потім знайдіть команду "Вирівняти узор" виводу попередньої команди.
У RHEL 7 я використовую цю команду для фільтра декількох портів у стані LISTEN:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Ця команда покаже всі порти та адресу призначення:
netstat -f
Використовуйте команду 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)
netstatповільно, якщо ви не використовуєте-nкомутатор, це означає, що він повинен робити багато DNS-пошуку.