Я пытаюсь установить сайт под альтернативным портом на сервере, но порт может быть закрыт брандмауэром. Есть ли способ выскочить или войти в конкретный порт, чтобы узнать, открыт ли он?Как определить, открыт ли порт на сервере Windows?
ответ
Если предположить, что это TCP (а не UDP) порт, который вы пытаетесь использовать:
на самом сервере, используйте
netstat -an
, чтобы проверить, какие порты прослушиванияснаружи, только
telnet host port
(илиtelnet host:port
на системах Unix), чтобы увидеть, если подключение отклоняется, принято, или тайм-ауты
На этом последнем испытании, то в общем:
- соединение отказался означает, что ничего не работает на этом порту
- принято означает, что что-то работает на этом порту
- таймаута означает, что брандмауэр блокирует доступ
On Win7 или параметр «defnet» Vista defaul «telnet» не распознается как внутренняя или внешняя команда, операционная программа или командный файл. Чтобы решить эту проблему, просто включите ее: нажмите «Пуск», «Панель управления», «Программы», а затем «Включить или отключить Windows». В списке прокрутите вниз и выберите Telnet Client и нажмите OK
В версии Win7 или Vista defaul «telnet» не распознается как внутренняя или внешняя команда, операционная программа или командный файл. Чтобы решить эту проблему, просто включите ее: нажмите «Пуск», «Панель управления», «Программы», а затем «Включить или отключить Windows». В списке прокрутите вниз и выберите Telnet Client и нажмите OK – volody 2010-11-03 01:41:39
@ volody любое предложение о том, как это сделать без прав администратора? – 2014-04-24 07:44:02
@PankajKohli использует [PuTTy] (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) клиент telnet. Его не нужно устанавливать. – 2014-05-12 14:28:04
Вам нужен инструмент для этого? Существует веб-сайт по адресу http://www.canyouseeme.org/. В противном случае, вам нужно какой-либо другой сервер, чтобы перезвонить вам, чтобы увидеть, если порт открыт ...
Если telnet недоступен, скачайте PuTTY. Это гораздо лучший клиент telnet, ssh и т. Д., И он будет полезен во многих ситуациях, а не только для этого, особенно если вы управляете сервером.
Просто хотел бы добавить, что в Windows, вы можете использовать
netstat -na | find "your_port"
, чтобы сузить результаты. Вы также можете фильтровать для LISTENING
, ESTABLISHED
, TCP
и т. Д. Разумеется, это чувствительно к регистру.
На сервере окон можно использовать
netstat -an | where{$_.Contains("Yourport")}
Вот что работал для меня,
- открытой командной строке
- типа телнет
- Microsoft Telnet> открыт
Он будет подтверждать, открыт ли порт.
Я сделал так:
netstat -an | find "8080"
из телнета
telnet 192.168.100.132 8080
И просто убедитесь, что брандмауэр отключен на этой машине.
На машине Windows, вы можете использовать PortQry от Microsoft, чтобы проверить, является ли данное приложение уже прослушивает определенный порт, используя следующую команду:
portqry -n 11.22.33.44 -p tcp -e 80
Используйте это, если вы хотите, чтобы увидеть всю использованную и слушать порты на сервере Windows:
netstat -an |find /i "listening"
Смотреть все открытые, аудирование, установленные порты:
netstat -a
psping от Sysinternals тоже очень хорошо
Я думаю, что лучшее, что я получил, это то, где вы можете проверить свои порты, а также порты другого домена.
Если вы проверяете с внешней стороны, а не с самого сервера, и вы не хотите заморачиваться установки телнет (как он не приходит с последние версии 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 Командлет еще не доступен).
Другая утилита, которую я нашел, и это хорошо и маленькие, а также, PortQry командной строки Port Scanner Версия 2.0 https://www.microsoft.com/en-us/download/details.aspx?id=17148
вы можете пинговать сервер и порт, и он сообщит вам состояние порта, для этого есть утилита командной строки и пользовательский интерфейс.
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
Пример PowerShell выше действует только в версиях Windows, выше Windows 7. Командлет не совместим с Windows 7.
См. Также http://serverfault.com/questions/309357/ping-a-specific-port – Vadzim 2015-09-07 11:00:49
также проверьте это - 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