Відповіді:
Якщо припустити, що ви намагаєтесь використовувати порт TCP (а не UDP):
На самому сервері використовуйте, netstat -an
щоб перевірити, які порти слухають.
Ззовні просто скористайтеся telnet host port
(або telnet host:port
в системах Unix), щоб побачити, чи підключення відмовлено, прийнято чи пройшло очікування.
То на останньому тесті, то взагалі:
У Windows 7 або Windows Vista опція "telnet" за замовчуванням не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма або пакетний файл. Щоб вирішити це, просто увімкніть його: Клацніть * Пуск ** → Панель управління → Програми → Увімкнення та вимкнення функцій Windows . У списку прокрутіть вниз та виберіть клієнт Telnet і натисніть 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 відкритий командний рядок (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
telnet 192.168.100.132 8080
І просто переконайтесь, що брандмауер вимкнено на цій машині.
netstat -an | find "8080"
її,no such file named "8080"
Якщо telnet
недоступний, завантажте PuTTY . Це набагато кращий клієнт Telnet, SSH тощо. Він буде корисний у багатьох ситуаціях, не тільки в цій, особливо якщо ви керуєте сервером.
Хочете інструмент для цього? Є веб-сайт за адресою http://www.canyouseeme.org/ . Інакше вам потрібен якийсь інший сервер, щоб передзвонити вам, щоб побачити, чи відкритий порт ...
На сервері Windows можна використовувати
netstat -an | where{$_.Contains("Yourport")}
Ще одна утиліта, яку я знайшов, і вона є хорошою і невеликою, - це сканер PortQry Port Port Scanner версії 2.0 .
Ви можете пінг-сервер і порт, і він повідомить вам стан порту. Для цього є утиліта командного рядка та інтерфейс користувача.