前言:在日常故障诊断的时候,我们经常需要去抓包测试,比如定位连通性问题,比如抓包查看到底客户端发送了什么SQL等等,今天咱们来学习一下常用的抓包手段。
一、wireshark
windows下基本上可以使用wireshark来抓包和分析,wireshark下载安装也是非常方便,去官网下载安装最新版本就OK,最新版本是2.6版本,跟1.0版本相差还是蛮大的,刚开始还一时找不到旧版本的按钮在哪里。
安装
安装就不说了,默认下一步就OK
下载地址贴上:https://2.na.dl.wireshark.org/win64/Wireshark-win64-2.6.1.exe
抓包配置
选择好网卡以后,选择下面小标签按钮,选择TCP/UDP,选择端口3306,然后点击开始就开始抓包了
抓包测试
在windows客户端用shell命令连接远程MySQL数据后可以看到界面上已经有数据显示
从上面可以很清晰得看到三次握手的过程,点击每一行下面都有详细的说明每一步干了什么,SQL是什么样子的,还是比较方便的,另外需要说明的一点是如果看到的是二进制编码,可以选择顶部菜单的转码,转成MySQL就可以了
二、tcpdump
在linux上,我们首选tcpdump来抓包,虽然也可以用wireshark来抓包,但是安装起来比较麻烦,tcpdump用yum安装一下即可。
抓包演示
开一个窗口,命令如下
tcpdump -i enp0s20u2 -s 0 port 3306 -w tcpdumptest.cap
参数说明:
-i:指定抓包的网卡名称
-s:抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
port:指定抓包监听的端口
-w:指定抓包数据保存的文件名
抓包分析
抓包完成以后,将抓包获取到的文件down到windows用wireshark分析即可