记一次udp端口数据流过程
序言
最近在调试外接日志功能的时候,需要调试通过nc发送数据到UDP服务端的数据流的问题。
使用nc(netcat) 启动UDP服务端监听端口其实是很简单的事儿,然后在另外一台主机上,同样使用nc进行发送数据到服务端 ,可以在服务端进行看见数据传输。nc的功能很强大,这里不做详述, 可参考 nc命令用法举例
- 安装 nc:
yum install -y netcat
nc 监听udp端口
简单使用如下
- 主机(192.168.137.2-虚拟机)启动udp做服务端,监听端口60062,直接使用如下指令启动:
nc -lu 60062
- 在本地主机使用wsl打开端口,虚拟机监听端口发送一条数据:
查看端口交互信息如下图echo -n "hello world!" | nc -4uv 192.168.137.2 60062 # nc 参数说明 # -4 使用ipv4协议 # u 表示,udp; t 表示tcp # v 使用交互输出
- 在服务端可以看到有接收到的数据流,如下图
nc 结合 tcpdump监听某个服务端口是否有数据接收
很多时候,为了测试某个服务端口(tcp/udp)是否有数据写入,但是测试人员并没办法进入到服务本身去查看,或者也无法通过日志查看是否有数据通过某个端口接收数据,此时可以使用 tcpdump工具进行测试,方式如下,以udp为例子:
比如如下某台服务器udp端口如下:
-
查看upd端口
netstat -nulp
-
需要检测端口 20514是否可以通过客户端正常写入数据,在此服务器上做如下操作
-
下载: tcpdump
yum install -y tcpdump
-
创建一个文件,用于将端口接收的数据写入到 本地文件
touch upd.txt
-
检查当前数据流使用的是哪一个网卡,可能有多个,选择当前主机ip对应的网卡
ifconfig
-
执行指令,用来接收数据流,并将数据流存入本地文件
tcpdump -i eno1 udp port 20514 -w ./udp.txt # eno1是当前使用的网卡 # -w 表示将数据流重写到文件中
-
运行一段时间后,直接
ctrl + c
退出监听,可以看到有数据包写入文件
-
在文件中查看接收到的数据流,
-
总结
tcp 端口,可以使用telnet 工具测试
udp端口,建议使用 nc 及tcpdump测试
♥永远年轻,永远热泪盈眶♥