Як у Windows за допомогою командного рядка перевірити, чи відкритий порт відкритий?


Відповіді:


62

Днями я знайшов самоцвіт Hiddem від Microsoft, призначений для тестування портів:

Portqry.exe

"Portqry.exe - це утиліта командного рядка, яку ви можете використовувати для вирішення проблем з підключенням TCP / IP. Portqry.exe працює на комп'ютерах під керуванням Windows 2000, на комп'ютерах під керуванням Windows XP та на комп'ютерах під керуванням Windows Server 2003. Утиліта повідомляє про стан портів портів TCP та UDP на обраному вами комп'ютері. "


Примітка. При спробі завантажити це з Microsoft повернулася сторінка, де зазначено, що завантаження "більше не доступне".
dgw

@dgw Дякую за це .. Google показує нову версію, якщо шукати `porty ', яку я перевіряю завтра
Peter M


52

Яка версія Windows? Для Windows 8 / Server 2012 та новіших версій у PowerShell працює наступне:

Test-NetConnection 128.159.1.1 -Port 80

Деякі Googling також знайдуть альтернативи, які безпосередньо використовують .NET Framework (оскільки PowerShell дозволяє це робити) для систем, що мають нижчі версії Windows, які не будуть Test-NetConnectionдоступні.

Якщо ви не проти використовувати сторонні утиліти, Nmap - це також дуже хороший друг, і він працює з командного рядка.


1
.Net метод:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z

У Win7 це не працює :-(
samsmith

@samsmith Ви говорите про команду у моїй відповіді, або про коментар ST8Z ...? Один із моєї відповіді працює лише для Win8 / 2k12 і вище, а відповідь говорить стільки ж.
Іссі

1
Здається, що це Windows 8.1 - Не можу знайти його в Windows 8
Енді Крувель

1
Відмінно працює в Windows 10, і мені не потрібно встановлювати жодних програм або додавати будь-які функції. Дякую! :)
Стів Бауман

24

Використовуйте команду telnet, щоб підключитися до сервера на вказаному порту і побачити, чи можна встановити з'єднання.

Успіх:

$ telnet my_server 25
220 my_server ESMTP Postfix

Помилка:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed

14
не працює для UDP.
Адріано Варолі П'яцца

8
UDP без зв’язку ..
Амальговінус

7

Telnet буде працювати для TCP.

Netcat - кращий інструмент для подібних речей, включаючи UDP, але будьте уважні, деякі програмні засоби AV вважають це "інструментом злого хакера"


1

наступна команда перелічить усі порти, які використовуються на машині ...

netstat -a

Вихід містить протокол, локальну адресу, іноземну адресу та поточний стан

Документація Netstat на microsoft.com


8
Питання задає питання про відкриті порти на віддаленій машині, а не локальні.
Chris S

0

Використовуйте netcat порт Windows :

>nc -zvv www.google.com 80
www.google.com [108.177.96.103] 80 (http) open
sent 0, rcvd 0
>

>nc -zvv www.google.com 888
www.google.com [108.177.96.147] 888 (?): TIMEDOUT
sent 0, rcvd 0: NOTSOCK
>

-4

'netstat' - ти друг.


3
Місцева машина так, віддалена машина ні.

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