tcpdump的初步认识 - youngperson/study-100 GitHub Wiki
为什么需要
- 为什么要用它,本机安装Charles不就可以
- 如果是本机调试接口,可以本机装个抓包的工具,流量的出口是在本机。
- 如果请求是来自外部的,不受本机的控制。需要在线上使用抓包的命令。
- 分析网络传输中的数据,可以看到请求、相应、传参等信息
介绍
- TcpDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
- 网络抓包,是运维工程师很一项重要,也需要的技能。但实现生活中却少有运维工程师能掌握
- 在windows平台下,一般我用wireshark,这个工具很叼的,抓了包后还能帮你把数据包整理得一清二楚,GUI界面的用起来也比较方便。而linux下的一般用的是tcpdump,这个工具也是非常叼的,不过它是个命令行工具,用起来可不是一般地难,但是做为运维工程师,面对最多的系统就是linux了
参数解释
-
以http流量为示例进行抓包讲解,因为在实际工作环境下,需要用到抓包分析的,十有八九是http流量。了解所以然后,其实其他类型的流量均是换汤不换药的。
-
-i [interface,网络接口]
-
-l [对标准输出进行行缓冲]
-
-s [snaplen,设置tcpdump的数据包抓取长度为snaplen, 如果不设置默认将会是68字节。0表示不限制]
-
-w [把包数据直接写入文件而不进行分析和打印输出. 这些包数据可在随后通过-r 选项来重新读入并进行分析和打印]
-
dst [监听,后面跟着目标]
-
and not src host xxxx [去掉和hots xxx之间通讯的数据]
-
tcpdump -i eth0 -l -s 0 -w - dst port 80 and not src host 192.168.69.62
参考
- https://www.cnblogs.com/jiangzhaowei/p/8505936.html
- https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
问题
-
抓出来的数据有部分是乱码
���n�Z���>"������E�@4�Mo��B��E>��PV�I��9� 6�:���_oGET /api/buildLog/5 HTTP/1.1 Host: chons.luojilab.com Connection: keep-alive Accept: application/json, text/plain, */* User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 Referer: http://chons.luojilab.com/ Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9