Linux 抓包还不会?这篇文章赶紧收藏

TCPDump工具详细演示

tcpdump输出内容解释

默认输入 tcpdump 这个命令,回车操作之后,它将监视第一个网络接口上所有流过的数据包,一般是 eth0,如下图所示:

21:26:49.013621 IP 172.20.20.1.15605 > 172.20.20.2.5920: Flags [P.], seq 49:97, ack 106048, win 4723, length 48

图片

从上面的输出来看,可以总结出:

第一列:时分秒毫秒 21:26:49.013621

第二列:网络协议 IP

第三列:发送方的ip地址+端口号,其中172.20.20.1是 ip,而15605 是端口号 / iZuf65wtzat3ohpxwn7on0Z是主机,ssh是协议 22端口;

第四列:箭头 >, 表示数据流向

第五列:接收方的ip地址+端口号,其中 172.20.20.2 是 ip,而5920 是端口号

第六列:数据包内容,包括Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length,其中 [P.] 表示 PUSH 标志位为 1,更多标识符大家需要了解TCP协议的标志位。

TCPDUMP详细参数使用

1、-i #指定监听网络接口

tcpdump -i eth0

默认监听在第一块网卡上,监听所有经过此网卡通过的数据包;但是我们可能关心的数据并不是 eth0 的接口,这时就需要指定端口进行数据包的捕获。

在 tcpdump 后面加一个 -i 的参数,后面跟具体需要捕获的接口名称,就可以抓取经过这个具体接口的所有数据包。
tcpdump -i any 监听所有的网卡接口、用来查看是否有网络流量

2、-w #将捕获到的信息保存到文件中,且不分析和打印在屏幕

tcpdump -i eth0 -w tt

报文打印在shell里会太多且不方便查看,我们可以保存成文件;然后通过xftp导出到本地,可以详细查看。

扩展:导出的文件可以设置为cap或者pcap的格式,可以直接用wireshark工具打开;
可以用wireshark工具分析报文具体信息!

3、-r #从文件中读取数据,读取后,我们照样可以使用上述的过滤器语法进行过滤分析。

tcpdump -r tt.pcap

这个参数也可以实现“流量回放”的功能,就是把历史上的某一时间段的流量,重新模拟回放出来,用于流量分析。

4、-n:不把ip转化成域名,直接显示 ip

避免执行 DNS lookups 的过程,速度会快很多

图片

-nn:不把协议和端口号转化成名字,速度也会快很多。

图片

-N:不打印出host 的域名部分,比如,如果设置了此选现,tcpdump 将会打印’nic’ 而不是 ‘nic.ddn.mil’.

5、-t:在每行的输出中不输出时间

图片

-tt:在每行的输出中会输出时间戳
-ttt:输出每两行打印的时间间隔(以毫秒为单位)
-tttt:在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观)

图片

6、-c #指定收取数据包的次数,即在收到指定数量的数据包后退出tcpdump,停止抓包

tcpdump -c 20 -w tt.pcap
解释:抓满20个报文之后,就停止tcpdump抓包。

图片

7、-C #与 -w FILE 保存文件选项配合使用

该选项使得 tcpdump 在把原始数据包直接保存到文件中之前,检查此文件大小是否超过 file-size。如果超过了,将关闭此文件,另创一个文件继续保存原始数据包。新创建的文件名与 -w 选项指定的文件名一致, 但文件名后多了一个数字,该数字会从1开始随着新创建文件的增多而增加。file-size的单位是百万字节(这里指1,000,000个字节,并非1,048,576个字节)。

tcpdump -C 1 -w tt

保存的文件大小不能超过1个单位(百万字节),结果如下图:

图片

这里还可以结合另外一个参数使用:-W,限制一下最多写入多少个文件。

tcpdump -C 1 -W 3 -w abc 指定一个单位后(1MB)就换文件,最多写3个文件,名字是abc0 , abc1, abc2。

图片

8、-s #指定每个包捕获的长度、单位是 byte,而不是默认的262144bytes;

如果超过了设定的大小限制,包就会被截断,而在打印行出现[|proto]这种标识,这个proto就是被截断的报文的协议名字。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好(-s 0 使用默认长度262144)。

图片

注意:不同的tcpdump版本,这个默认抓取的报文的长度不一样。

9、-F 指定使用哪个文件的过滤表达式抓包。此时命令行上的输入过滤规则将被忽略.

tcpdump -F filter_rule -c10
这种情况适用于将表达式放置在文件中长期维护。

图片

10、-l #对标准输出进行行缓冲–使标准输出设备遇到一个换行符就马上把这行的内容打印出来。

在需要同时观察抓包打印以及保存抓包记录的时候很有用.
比如, 可通过以下命令组合来达到此抓包时保存到文件的同时查看包的内容。

tcpdump -l | tee dat
这命令是使用tee来把tcpdump 的输出同时放到文件dat和标准输出中
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值