【udp】如何检测UDP端口的连通性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【udp】如何检测UDP端口的连通性相关的知识,希望对你有一定的参考价值。

参考技术A yum -y install nmap

nmap -sU -p 123 10.0.8.7
nmap -sU -p 222 10.0.8.7

yum -y install nc

nc -zuv ntp.aliyun.com 123
nc -zuv ntp.aliyun.com 222

关于nc用于udp端口连通性测试注意点:

udp 没有类似 tcp 那样的状态报文, 所以单纯对 UDP 抓包是看不到啥异常信息。

那么当 IP 不通时, 为啥nc udp 命令显示成功 ?

因为 nc 默认的探测逻辑很简单,只要在 2 秒钟内没有收到 icmp ECONNREFUSED 异常报文, 那么就认为 UDP 连接成功。
所以, UDP 客户端给无法连通的地址发 UDP 报文时,其实也不会报错, 这时候通常会认为发送成功。

UDP 没有 TCP 那样的握手步骤,像 TCP 发送 syn 总得不到回报时, 协议栈会在时间退避下尝试 6 次,当 6 次还得不到回应,内核会给与错误的 errno 值。

所以如果要用 nc 测试 目标upd端口的连通性,先测试下到目标ip网络是否通畅。

UDP端口port unreachable
https://mp.weixin.qq.com/s/Ve_faFF87SxMVhTO9S-yKw

黑客工具之nmap详细使用教程
https://mp.weixin.qq.com/s/lsz-c6ZLC4iKyF47KaYgHg

让人迷糊的 socket udp 连接问题
https://xiaorui.cc/archives/7255

怎样检测TCP/UDP端口的连通性 netcat udp端口检查

1 TCP端口的连通性
TC端口的连通性,一般通过telnet检测:

TCP协议是面向连接的,可以直接通过telnet命令连接

telnet host-ip port

2 UDP端口的连通性
因为公司网络防火墙一般对端口会有一些限制,通过公司网络访问外部服务器特定端口时,需要检测与目标服务器特定端口的连通性;

若无法连通,在确认目标服务器相关端口打开时,则很有可能是被公司网络(中间网络)屏蔽了。对于TCP端口,如上一般用telnet检测。

对于UDP端口,一般稍微复杂点:

因为UDP协议是无连接的,不需要握手建立连接,数据发送后,server端也不会返回确认信息。

一般可以使用netcat检测,这个命令被誉为是网络中的“瑞士军刀”,功能非常强大,测试udp只是其中的一个功能变通。

UDP端口连通性测试:

在目标机器监听UDP端口port1, 在客户端机器向目标机器port1端口发送UDP数据报,看能否发送成功。发送成功,则表示可连通。

例如:

a机器上运行:

nc -ul 1080

或:netcat -ul -p 1080

#使用udp模式监听1080 端口

b机器上运行:

nc -u x.x.x.x 1080

或:netcat -u x.x.x.x 1080

#使用udp模式向该ip的1080端口发送信息。

效果如图,在任意一边输入内容,另一边则会收到相应内容,以此就可以测试该端口的udp连接是否通常。

nc测试udp端口

以上是关于【udp】如何检测UDP端口的连通性的主要内容,如果未能解决你的问题,请参考以下文章

怎样检测TCP/UDP端口的连通性

怎样检测TCP/UDP端口的连通性

Linux系列:检测TCP/UDP端口的连通性

Linux系列:检测TCP/UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性