如何发现特定的地址/端口是否可达?


10

我需要一个简单的实用程序,使我可以检查连接到本地网络的PC是否能够使用指定的协议(例如TCP或UDP)到达指定的地址:端口

我要使用的计算机操作系统是Windows XP。


您应该从Microsoft Sysinternals检查我们的psexec。它将允许您使用给定的凭据在给定的计算机上运行进程。
2014年

Answers:


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很好。
akira 2010年

1
@snark使用哪种协议进行此测试?TCP,UDP或其他?
德雷克2010年

使用TCP,因为telnet建立了连接。UDP是无连接的,因此您无法确定某人是否在监听。
Snark

谢谢。因此,没有办法使用工具来检查某个端口的输出中是否允许UDP?仅使用所需的应用程序,然后查看它是否有效?
德雷克2010年

3

nmap应该能够处理此问题。


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.