验证与UDP端口上的服务器的连接


14

我想知道HP-UX计算机是否可以使用UDP与特定端口上的远程计算机(我无法控制)进行通信。

我尝试使用telnet,但它似乎不支持UDP。我将使用netcat,但找不到任何捆绑包。这台机器已经投入生产,所以我不想在编译或安装太多东西时费解……(nmap,源代码的netcat ...)

有任何简单的方法吗?

Answers:


16

ping UDP端口有点棘手,因为本身没有连接。如果您无法控制远程主机,那么您可能永远不会真正知道是否实际上正在接收UDP数据报。我假设你已经知道了远程主机是否可达,通过pingtraceroutemtr,等(如果没有,请检查第一!)

接下来,由于您没有netcat,您将需要某种方式来生成UDP数据包。

bash当您将数据重定向到特殊设备时,shell发送UDP数据包/dev/udp/host/port。例如:

#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port

当然,Python也完全支持UDP,例如

#!/bin/python
import socket
host="10.10.10.10"
port=12345
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.sendto('PING', (host, port))

无论您如何尝试生成UDP“ ping”数据包,您都想知道目标是否已收到它。如果目标端口是开放的(即服务正在侦听给定的端口),那么将由应用程序定义。希望您会注意到远程系统的某些行为或指示。

如果目标端口是关闭的(即,没有服务在该端口上侦听),那么您应该得到一个ICMP错误数据包作为响应。使用您喜欢的线级网络嗅探器进行监视。或者,也许您的HP-UX系统在某处记录了ICMP错误(对不起,我对HP-UX没有任何经验)。

不幸的是,如果目标被防火墙保护,则目标端口关闭时您可能不会得到响应。知道远程主机是否响应的唯一肯定方法是运行依赖于UDP数据的应用程序,并观察网络流量。


10

您可以使用netcat。在OSX中,这是我的命令:

$ nc -vnzu <IP> <PORT>
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif (null)
src <SOURCE IP> port <SOURCE PORT>
dst <DEST IP> port <DEST PORT>
rank info not available

完美,数控系统适用于一切!
Shoaib Khan
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.