Tcpdump 简明用法

Tcpdump 简明用法

第一次接触Tcpdump的时候还是在学习一位阿里的SQLDB分享Mysql线上性能分析的时候学的,那时候把这个抓包命令抄下来,一用就是几年也没想过去分析每个参数是啥意思,直到换了新工作对抓包的需求越来越多,每次都是用的时候搜,用完了又忘。

tcpdump -s 0 -l -w - dst 127.0.0.1 and port 3306 -i lo |strings

-s 表示从一个包中获取的字节数,0 为不截断,默认68字节
-l 输出方式变为“行缓冲”,确保tcpdump遇到字符一旦是换行符,即将缓冲内容输出到标准输出,便于利用管道或者重定向的方式后续处理

-w 输出到文件,后面跟一个文件路径,如果是 - 则输出到屏幕上
dst 传输方向关键字主要包括 src, dst, dst or src, dst and src,默认 dst or src
port 端口,可以使用 dst port, src port 限定来源或是目标端口
-i 表示监听哪块网卡,通过 ifconfig 可以看到网卡列表,如果是 127.0.0.1, localhost 的请求通常是 lo 回环网卡,否则就看看ip是在哪个网卡上

strings 这个不是tcpdump的命令,是将tcpdump原本输出到文件的内容,通过管道交给strings处理,作用是打印文件中的可打印字符

通过上面这个命令组合,可以实现抓取指定ip的指定端口到本机指定网卡的端口的请求,反之亦然,并格式化为人可读的文本。

需要注意两点
1、strings不一定能够输出所有的内容,可以保存到文件之后,copy下来使用wireshark图形化工具查看。
2、如果通讯过程中使用了加密或者压缩协议,那么抓包的内容是无法直接看到的

参考链接

发表评论

邮箱地址不会被公开。 必填项已用*标注