Ответы:
Предполагая, что это порт TCP (а не UDP), который вы пытаетесь использовать:
На самом сервере используйте netstat -an
для проверки, какие порты прослушивают.
Снаружи просто используйте telnet host port
(или telnet host:port
в системах Unix), чтобы увидеть, отказано ли соединение, принято или истекло время ожидания.
По этому последнему тесту, тогда вообще:
В Windows 7 или Windows Vista параметр по умолчанию «telnet» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. Чтобы решить эту проблему, просто включите ее: Нажмите * Пуск ** → Панель управления → Программы → Включить или отключить функции Windows . В списке прокрутите вниз, выберите Telnet Client и нажмите OK.
Could not open connection to the host, on port *x*: Connect failed
означает?
telnet api-3t.sandbox.paypal.com 443
получу Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failed
это, потому что это блокирует брандмауэр?
o host port
vs open командной строки (cmd.exe), а затем telnet host port
На Windows вы можете использовать
netstat -na | find "your_port"
сузить результаты. Кроме того, можно фильтровать LISTENING
, ESTABLISHED
, TCP
и тому подобное. Имейте в виду, что это с учетом регистра, хотя.
find
не работал в Windows 10 для меня, но netstat -na | findstr "8080"
работал
Если вы проверяете извне, а не с самого сервера и не хотите беспокоиться об установке telnet (так как он не поставляется с последними версиями Windows) или любого другого программного обеспечения, то у вас есть собственный PowerShell:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(К сожалению, это работает только с PowerShell 4.0 или новее. Чтобы проверить версию PowerShell, введите $PSVersionTable
.)
PS: Обратите внимание, что в эти дни есть некоторые претензии к twittersphere, которые намекают, что этот ответ можно улучшить, упомянув «Test-Connection» из PowerShell Core или ярлык «tnc». Смотрите https://twitter.com/david_obrien/status/1214082339203993600 и помогите мне отредактировать этот ответ, чтобы улучшить его, пожалуйста!
(Если у вас PSVersion <4.0, вам не повезло. Проверьте эту таблицу:
Несмотря на то, что вы можете обновить версию PowerShell, установив Windows Management Framework 4.0 , для меня это не помогло, командлет Test-NetConnection по-прежнему недоступен).
На компьютере с Windows вы можете использовать PortQry от Microsoft, чтобы проверить, прослушивает ли приложение уже определенный порт, используя следующую команду:
portqry -n 11.22.33.44 -p tcp -e 80
portqry -n 11.22.33.44 -p udp -e 19132
Я сделал это так:
netstat -an | find "8080"
из телнета
telnet 192.168.100.132 8080
И просто убедитесь, что на этой машине выключен брандмауэр.
netstat -an | find "8080"
он говорит,no such file named "8080"
Если telnet
нет в наличии, загрузите PuTTY . Это значительно превосходящий клиент Telnet, SSH и т. Д., Который будет полезен во многих ситуациях, а не только в этой, особенно если вы управляете сервером.
Вы хотите инструмент для этого? Есть веб-сайт по адресу http://www.canyouseeme.org/ . В противном случае вам понадобится какой-нибудь другой сервер, чтобы перезвонить вам и посмотреть, открыт ли порт ...
На Windows Server вы можете использовать
netstat -an | where{$_.Contains("Yourport")}
Еще одна полезная программа, которую я нашел, а также хорошая и небольшая, - это PortQry Command Line Port Scanner версии 2.0 .
Вы можете пропинговать сервер и порт, и он сообщит вам состояние порта. Для этого есть утилита командной строки и пользовательский интерфейс.