Как определить, открыт ли порт на сервере Windows?

Я пытаюсь установить сайт под альтернативным портом на сервере, но порт может быть закрыт брандмауэром. Есть ли способ отсканировать или на определенном порту, чтобы узнать, открыт ли он?

Ответ 1

Предполагая, что это TCP-порт (а не UDP), который вы пытаетесь использовать:

  • На самом сервере используйте netstat -an, чтобы проверить, какие порты прослушиваются

  • Извне, просто telnet host port (или telnet host:port в Unix-системах), чтобы узнать, отказано ли соединение, принято или тайм-ауты

В этом последнем тесте, в общем случае:

  • Отключено соединение означает, что на этом порту ничего не выполняется.
  • означает, что что-то работает на этом порту
  • timeout означает, что брандмауэр блокирует доступ

В Win7 или Vista defaul опция "telnet" не распознается как внутренняя или внешняя команда, операционная программа или командный файл. Чтобы решить эту проблему, просто включите ее: нажмите "Пуск", "Панель управления", "Программы", а затем "Включить или отключить Windows". В списке прокрутите вниз и выберите "Клиент Telnet" и нажмите "ОК"

Ответ 2

Просто хотел добавить, что в Windows вы можете использовать

netstat -na | find "your_port"

чтобы сузить результаты. Вы также можете фильтровать для LISTENING, ESTABLISHED, TCP и т.д. Имейте в виду, что он чувствителен к ошибкам.

Ответ 3

Мне понравилось:

netstat -an | find "8080" 

из telnet

telnet 192.168.100.132 8080

И просто убедитесь, что на этой машине отключен брандмауэр.

Ответ 4

На компьютере с Windows вы можете использовать PortQry от Microsoft, чтобы проверить, уже ли приложение уже прослушивает определенный порт, используя следующую команду:

portqry -n 11.22.33.44 -p tcp -e 80

Ответ 5

Если вы проверяете извне, а не с самого сервера, и не хотите беспокоиться о установке telnet (так как это не относится к последним версиям Windows) или к любому другому программному обеспечению, тогда у вас есть родной PowerShell:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(К сожалению, это работает только с PowerShell 4.0 или новее. Чтобы проверить версию вашего PS, введите $PSVersionTable.)


(Если у вас есть PSVersion < 4.0, вам не повезло. Проверьте эту таблицу:

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

Несмотря на то, что вы можете обновить версию PowerShell, установив Windows Management Framework 4.0, это не помогло мне, Test-NetConnection все еще недоступен).

Ответ 6

Если telnet недоступен, загрузите PuTTY. Это гораздо лучший клиент telnet, ssh и т.д., И он будет полезен во многих ситуациях, а не только для этого, особенно если вы управляете сервером.

Ответ 7

Вам нужен инструмент для этого? Существует веб-сайт http://www.canyouseeme.org/. В противном случае вам понадобится другой сервер, чтобы перезвонить вам, чтобы узнать, открыт ли порт...

Ответ 8

Используйте это, если вы хотите видеть все используемые и прослушивающие порты на сервере Windows:

netstat -an |find /i "listening"

Показать все открытые, прослушиваемые, установленные порты:

netstat -a

Ответ 9

На сервере Windows вы можете использовать

netstat -an | where{$_.Contains("Yourport")}

Ответ 10

psping из Sysinternals также очень хорош

Ответ 11

Другим вариантом является tcping.

Например:

tcping host port

Ответ 12

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

Приведенный выше пример PowerShell действителен только для версий Windows выше Windows 7. Командлет несовместим с Windows 7.

Ответ 13

Вот что сработало для меня,

  • открыть командную строку
  • тип telnet
  • Microsoft Telnet > открыть

Он подтвердит, открыт ли порт.

Ответ 14

Я думаю, что лучшее, что я получил, это то, где вы можете проверить свои собственные порты, а также другие порты домена.

www.checkmyports.net

Ответ 15

Другая полезность, которую я нашел, и хороша и мала, PortQry командной строки Port Scanner версии 2.0 https://www.microsoft.com/en-us/download/details.aspx?id=17148

вы можете выполнить ping сервер и порт, и он сообщит вам состояние порта, для него есть утилита командной строки и пользовательский интерфейс.