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


参考


问题

  • 抓出来的数据有部分是乱码

      ���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