记一次udp端口数据流过程

序言

最近在调试外接日志功能的时候,需要调试通过nc发送数据到UDP服务端的数据流的问题。

使用nc(netcat) 启动UDP服务端监听端口其实是很简单的事儿,然后在另外一台主机上,同样使用nc进行发送数据到服务端 ,可以在服务端进行看见数据传输。nc的功能很强大,这里不做详述, 可参考 nc命令用法举例

  • 安装 nc: yum install -y netcat

nc 监听udp端口

简单使用如下

  1. 主机(192.168.137.2-虚拟机)启动udp做服务端,监听端口60062,直接使用如下指令启动:
    nc -lu 60062
  2. 在本地主机使用wsl打开端口,虚拟机监听端口发送一条数据:
    echo -n "hello world!" | nc -4uv  192.168.137.2 60062
    
    # nc 参数说明
    # -4 使用ipv4协议
    # u 表示,udp; t 表示tcp
    # v 使用交互输出
    
    查看端口交互信息如下图
    image
  3. 在服务端可以看到有接收到的数据流,如下图
    image

nc 结合 tcpdump监听某个服务端口是否有数据接收

很多时候,为了测试某个服务端口(tcp/udp)是否有数据写入,但是测试人员并没办法进入到服务本身去查看,或者也无法通过日志查看是否有数据通过某个端口接收数据,此时可以使用 tcpdump工具进行测试,方式如下,以udp为例子:

比如如下某台服务器udp端口如下:

  1. 查看upd端口

    • netstat -nulp
      image
  2. 需要检测端口 20514是否可以通过客户端正常写入数据,在此服务器上做如下操作

    • 下载: tcpdump
      yum install -y tcpdump

    • 创建一个文件,用于将端口接收的数据写入到 本地文件
      touch upd.txt

    • 检查当前数据流使用的是哪一个网卡,可能有多个,选择当前主机ip对应的网卡
      ifconfig
      image

    • 执行指令,用来接收数据流,并将数据流存入本地文件

      tcpdump -i eno1 udp port 20514 -w ./udp.txt
      
      # eno1是当前使用的网卡
      # -w 表示将数据流重写到文件中
      

      image

    • 运行一段时间后,直接 ctrl + c 退出监听,可以看到有数据包写入文件
      image

    • 在文件中查看接收到的数据流,
      image

总结

tcp 端口,可以使用telnet 工具测试
udp端口,建议使用 nc 及tcpdump测试

♥永远年轻,永远热泪盈眶♥
原文地址:https://www.cnblogs.com/failymao/p/14605301.html