Командная строка для просмотра конкретного порта

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


person user1580018    schedule 17.08.2012    source источник
comment
netstat работает медленно только в том случае, если вы не используете переключатель -n, что означает, что он должен выполнять много поисков DNS.   -  person user207421    schedule 23.10.2014


Ответы (14)


Вот простое решение поиска порта ...

В cmd:

netstat -na | find "8080"

В bash:

netstat -na | grep "8080"

В PowerShell:

netstat -na | Select-String "8080"
person Md. Naushad Alam    schedule 18.06.2014
comment
Как пользоваться этой командой? Я хочу знать, что этот номер порта работает или нет ссылка: - [ссылка] (https: //.localhost: 9043 / ibm / console / login.do) - person Mayur Ingle; 26.05.2017
comment
Также стоит упомянуть флаг -o (т.е. -nao здесь) для включения PID процесса, использующего порт. - person Steve Chambers; 28.11.2017

Вы можете использовать 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.

person Rivasa    schedule 17.08.2012

Я использую:

netstat –aon | find "<port number>"

здесь o представляет идентификатор процесса. теперь вы можете делать что угодно с идентификатором процесса. Чтобы завершить процесс, например, используйте:

taskkill /F /pid <process ID>
person Himadri Pant    schedule 25.09.2014

когда у меня возникают проблемы с WAMP apache, я использую этот код, чтобы узнать, какая программа использует порт 80.

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

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

3068 - это PID, поэтому я могу найти его в диспетчере задач и остановить этот процесс.

person Mohsen Safari    schedule 09.11.2013
comment
Очень красиво, большое спасибо! Специально для TCP я использую следующее: netstat -o -nap TCP | findstr 0.0: 80 - person denyoha; 27.02.2020

Как отмечено в другом месте: используйте netstat с соответствующими переключателями, а затем отфильтруйте результаты с помощью find [str]

Самый простой:

netstat -an | find ":N"

or

netstat -a -n | find ":N"

Чтобы найти чужой порт, вы можете использовать:

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

Чтобы найти локальный порт, вы можете использовать:

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

Где N - номер интересующего вас порта.

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

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

В строке find вы должны включить двоеточие в качестве квалификатора порта, иначе номер может соответствовать локальным или внешним адресам.

Вы можете еще больше сузить поиск, используя другие переключатели netstat, если это необходимо ...

Дальнейшее чтение (^ 0 ^)

netstat /?

find /?

findstr /?
person EndUzr    schedule 23.06.2014

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

он даст вам количество сокетов, активных на определенном IP-адресе и порту (номер порта сервера)

person Uday Singh    schedule 05.11.2014
comment
Это не работает для Windows Power Shell на Windows 2012 R2 и получено как FIND: Parameter format not correct - person Chaminda Bandara; 09.01.2017

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

Если приходит ответ типа ПРОСЛУШИВАНИЕ, значит, порт используется, в противном случае он свободен.

person Pratik Roy    schedule 27.04.2015

Чтобы улучшить ответ @ EndUzr:

Чтобы найти внешний порт (IPv4 или IPv6), вы можете использовать:

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

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

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

Где N - номер порта, который вас интересует. Переключатель «/ r» указывает ему обрабатывать его как регулярное выражение. Переключатель «/ c» позволяет findstr включать пробелы в строки поиска вместо того, чтобы рассматривать пробел как разделитель строки поиска. Это дополнительное пространство предотвращает неправильное обращение с более длинными портами - например, «: 80» против «: 8080» и другие проблемы, связанные с изменением портов.

Чтобы вывести список удаленных подключений к локальному серверу RDP, например:

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

Или посмотреть, кто трогает ваш DNS:

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

Если вы хотите исключить локальные порты, вы можете использовать серию исключений с «/ v» и escape-символами с обратной косой чертой:

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

Это поможет тебе

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
person Jobin James    schedule 21.08.2019

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

Здесь netstat - это инструкция для вашей машины

-a: отображает все подключения и порты прослушивания -n: отображает все адреса и инструкции в числовом формате (это необходимо, поскольку вывод -a может содержать имена компьютеров)

Затем команда find для «сопоставления с образцом» вывода предыдущей команды.

person subodhkarwa    schedule 12.04.2018

Он предоставит вам все активные сокеты на определенном IP:

netstat -an | find "172.20.1.166"
person Rahid Zeynalov    schedule 18.01.2021

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

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
person Hernaldo Gonzalez    schedule 23.12.2019

Эта команда покажет все порты и их адрес назначения:

netstat -f 
person Dharmajulian    schedule 13.04.2014
comment
Запрос заключался в том, чтобы узнать, использовался ли конкретный порт. - person Ro Yo Mi; 09.10.2015

Используйте команду 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)
person stones333    schedule 05.08.2015
comment
Минус, потому что это не команда Windows. Если он доступен в Windows, не обсуждается, как его получить. - person Ro Yo Mi; 09.10.2015
comment
Не отвечает на вопрос ОП. -1. - person FractalSpace; 13.06.2016