Вопрос или проблема
[Статьи, подобные этой][1] и [этой][2] показывают, как использовать Telnet или PowerShell для проверки, открыт ли порт. Когда я пробую, оба метода завершаются неудачей (тайм-аут), не только с специальными портами, которые я открыл в брандмауэре Windows, но и с портом 80, который должен работать, верно? Что я упускаю?
Вот подход с PowerShell:
test-netconnection <адрес> -p <номер порта>
Результирующий вывод:
PS C:\Windows\system32> test-netconnection 192.168.1.107 -p 80
WARNING: TCP connect to (192.168.1.107 : 80) failed
Имя компьютера : 192.168.1.107
Удалённый адрес : 192.168.1.107
Удалённый порт : 80
Псевдоним интерфейса : Ethernet 2
Исходный адрес : 192.168.1.105
PingSucceeded : True
Подробности ответа ping (RTT) : 0 мс
TcpTestSucceeded : False
PS C:\Windows\system32> ping 192.168.1.107
Посылаем запрос 192.168.1.107 с 32 байтами данных:
Ответ от 192.168.1.107: байты=32 время<1мс TTL=128
Ответ от 192.168.1.107: байты=32 время=1мс TTL=128
Нет, порт 80 не должен просто так работать по умолчанию, если у вас не запущен HTTP (незащищенный) веб-сервер.
PingSucceeded : True
Эта строка показывает, что вывод tnc согласуется с вашей командой ping. У вас просто не открыт порт 80 на вашем хосте .107. Успешный ICMP ping не подразумевает, что TCP порт открыт.
Ваша команда test-netconnection
работает как ожидалось. Если вы хотите проверить открытый порт, попробуйте некоторые из распространенных: 135, 443, 445, 3389 и т. д.
Ответ или решение
Проблема, с которой вы столкнулись, связана с тем, что команда PowerShell Test-NetConnection
не может установить TCP-соединение с указанным портом, что, в данном случае, является портом 80 на адресе 192.168.1.107.
Вот несколько возможных причин этой проблемы и рекомендации по их устранению:
-
Отсутствие веб-сервера: Порт 80 используется протоколом HTTP. Для успешного подключения к этому порту на целевом хосте должен быть запущен веб-сервер. Убедитесь, что на компьютере с IP-адресом 192.168.1.107 установлен и запущен веб-сервер (например, IIS, Apache или другой), который слушает на порту 80.
-
Правила брандмауэра: Возможно, что брандмауэр Windows или сторонний брандмауэр на целевом компьютере блокирует подключения к порту 80. Проверьте настройки брандмауэра и убедитесь, что порт 80 открыт для входящих соединений. Это можно сделать через «Панель управления» -> «Система и безопасность» -> «Брандмауэр Windows Defender», где вы можете создать новое правило для разрешения трафика на порту 80.
-
Ошибки в сетевой конфигурации: Убедитесь, что вы правильно указываете адрес и порт. Также проверьте, что на целевом компьютере правильно настроены сетевые интерфейсы и что он находится в той же локальной сети, если вы пытаетесь создать соединение с локальными IP-адресами.
-
Проблемы с маршрутизацией: Если на уровне сети есть устройства, которые могут блокировать или фильтровать трафик (например, маршрутизаторы, межсетевые экраны), это также может быть причиной того, что соединение не устанавливается. Проверьте маршрутизацию и наличие сети между вашими устройствами.
-
Использование других инструментов для проверки: Параллельно вы можете использовать другие инструменты, такие как
telnet
илиnc
(netcat), для проверки соединения на том же порту. Если они также не могут подключиться, это еще один подтверждающий признак того, что порт на целевом хосте закрыт.
Выводя все вышесказанное, результат выполнения вашей команды Test-NetConnection
показывает, что ICMP-ответ получен (то есть, хост доступен), однако TCP-подключение не удалось из-за отсутствия сервиса, работающего на указанном порту. Рекомендуется проверить наличие запущенного веб-сервера и настройки брандмауэра на целевом хосте.