zoukankan      html  css  js  c++  java
  • 记一次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测试

    ♥永远年轻,永远热泪盈眶♥
  • 相关阅读:
    "etc/profile" E212: Can't open file for writing
    Swift 判断是否是调试模式以及是否越狱
    密码技术之基本介绍
    算法
    App Thinning (App 瘦身)
    #pragma once vs #ifndef
    APUE学习之进程控制
    Socket编程-基础使用
    Link Script 学习
    PX4学习之-uORB msg 自动生成模板解读
  • 原文地址:https://www.cnblogs.com/failymao/p/14605301.html
Copyright © 2011-2022 走看看