2008-11-07 7 views
394

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

+0

См. Также http://serverfault.com/questions/309357/ping-a-specific-port – Vadzim 2015-09-07 11:00:49

+0

также проверьте это - http://stackoverflow.com/questions/41522605/how-to-check-if-port -is-open-on-a-remote-server-with-batch-file-and-without-thir – npocmaka 2017-01-25 20:10:10

ответ

602

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

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

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

На этом последнем испытании, то в общем:

  • соединение отказался означает, что ничего не работает на этом порту
  • принято означает, что что-то работает на этом порту
  • таймаута означает, что брандмауэр блокирует доступ

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

+282

В версии Win7 или Vista defaul «telnet» не распознается как внутренняя или внешняя команда, операционная программа или командный файл. Чтобы решить эту проблему, просто включите ее: нажмите «Пуск», «Панель управления», «Программы», а затем «Включить или отключить Windows». В списке прокрутите вниз и выберите Telnet Client и нажмите OK – volody 2010-11-03 01:41:39

+0

@ volody любое предложение о том, как это сделать без прав администратора? – 2014-04-24 07:44:02

+11

@PankajKohli использует [PuTTy] (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) клиент telnet. Его не нужно устанавливать. – 2014-05-12 14:28:04

10

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

24

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

143

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

netstat -na | find "your_port" 

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

5

На сервере окон можно использовать

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

1

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

  • открытой командной строке
  • типа телнет
  • Microsoft Telnet> открыт

Он будет подтверждать, открыт ли порт.

34

Я сделал так:

netstat -an | find "8080" 

из телнета

telnet 192.168.100.132 8080 

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

34

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

portqry -n 11.22.33.44 -p tcp -e 80 
9

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

netstat -an |find /i "listening" 

Смотреть все открытые, аудирование, установленные порты:

netstat -a 
2

psping от Sysinternals тоже очень хорошо

1

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

www.yougetsignal.com/tools/open-ports

36

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

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

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

.

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

enter image description here

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

0

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

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

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

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