Чи є спосіб перевірити стан конкретного порту з командного рядка 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-пошуку.