Как узнать, доступен ли конкретный адрес / порт?

10

Мне нужна простая утилита, которая позволяет мне проверить, может ли ПК, подключенный к локальной сети, достичь указанного адреса: порт, используя указанный протокол, такой как TCP или UDP.

ОС машины, которую я буду использовать для проверки, - Windows XP.

селезень
источник
Вы должны проверить наш psexec от Microsoft Sysinternals. Это позволит вам запустить процесс на данном компьютере с использованием указанных учетных данных.
music2myear

Ответы:

11

Используйте просто telnet:

telnet hostname port

Если вы получаете соединение, что-то отвечает на этот порт.

Если вы получили сообщение об ошибке, ни одна программа не прослушивает этот порт или имя хоста неверно:

Connecting To hostname...Could not open connection to the 
host, on port <port>: Connect failed
Снарк
источник
+1, telnet или всемогущий netcat (nc), но вы должны взять это откуда-то, так что telnet просто в порядке.
Акира
1
@snark, какой протокол используется для этого теста? TCP, UDP или другое?
Дрейк
TCP используется, так как telnet устанавливает соединение. UDP не имеет соединения, поэтому вы не можете определить, слушает кто-то или нет.
Snark
Спасибо. Таким образом, нет способа использовать инструмент, чтобы проверить, разрешен ли UDP при выводе на определенный порт? Только пользуясь нужным приложением и видишь, как оно работает?
Дрейк
3

Nmap должен быть в состоянии справиться с этим.

CaseyIT
источник
2
если бы вы могли привести пример с этим предложением, это было бы здорово. Может быть, что-то вроде этого будет работать:nmap -v IP_ADDRESS -Pn -p PORT
Крис
3

Вы можете использовать iperf для проверки доступности портов UDP или нет.

Пример: проверка, открыт ли порт 5093 UDP на удаленном сервере 10.0.0.1

C:\>iperf -u -p 5093 -c 10.0.0.1
------------------------------------------------------------
Client connecting to 10.0.0.1, UDP port 5093
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[320] local 10.16.61.182 port 54574 connected with 10.0.0.1 port 5093
[ ID] Interval       Transfer     Bandwidth
[320]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[320] **Sent 893 datagrams**

Как видите, клиент успешно передал 893 дейтаграммы, что означает, что порт действительно открыт. В случае, если брандмауэр блокирует порт, вы должны прочитать сообщение, подобное этому:

Read failed: Connection reset by peer
Рафа Уемура
источник