14
2025
04
17:27:24

UDP连通性,这样测试。网工赶紧学起来吧!

以下是几种测试UDP连通性的常用方法,涵盖工具使用和脚本编写方案:


1. 使用 nc (Netcat) 测试

  • 监听端
  bash
  nc -ul -p <监听端口>  # Linux
  nc -u -l <监听端口>   # macOS/部分Linux版本
  

示例:nc -ul -p 1234

  • 发送端
  bash
  echo "test" | nc -u <目标IP> <目标端口>
 

示例:echo "hello" | nc -u 192.168.1.100 1234

验证:若监听端能收到消息,则UDP连通正常。


2. 使用 nping (Nmap工具包)

bash
nping --udp -p <目标端口> <目标IP> --data-string "test"

示例:nping --udp -p 53 8.8.8.8

验证:观察是否收到响应(注意:UDP无ACK,部分服务可能不响应)。


3. 使用 hping3

bash
hping3 --udp -p <目标端口> -s <源端口> <目标IP>

示例:hping3 --udp -p 80 -s 12345 192.168.1.1

验证:通过统计丢包率判断连通性。


4. 使用 iperf3 测试带宽(验证UDP吞吐量)

  • 服务端
  bash
  iperf3 -s
  • 客户端
  bash
  iperf3 -c <服务端IP> -u -b 1M  # 发送1Mbps UDP流量

验证:查看服务端是否收到数据及带宽统计。


5. Python脚本测试

  • 服务端代码
  python
  import socket
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  sock.bind(("0.0.0.0", 1234))
  while True:
      data, addr = sock.recvfrom(1024)
      print(f"Received: {data} from {addr}")

  • 客户端代码
  python
  import socket
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  sock.sendto(b"test", ("<目标IP>", 1234))

6. 使用 tcpdump/Wireshark 抓包验证

在接收端抓包:

bash
tcpdump -i any udp port <端口> -vvv

验证:观察是否有UDP数据包到达目标端口。


7. 在线工具或公共服务

  • DNS查询:测试UDP 53端口是否开放:
  bash
  dig @8.8.8.8 google.com  # 使用Google DNS
  • NTP查询:测试UDP 123端口:
  bash
  ntpdate -q <NTP服务器IP>

注意事项

  1. 无状态协议:UDP不保证数据到达,需结合抓包或应用层响应确认。
  2. 防火墙规则:确保两端防火墙允许UDP流量通过。
  3. 服务依赖:目标端口需有服务监听才会响应(或触发ICMP不可达错误)。

根据场景选择合适方法:简单测试推荐 nc 或 nping,精确分析建议抓包。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/10518.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: