前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux tcpdump抓包必备知识

Linux tcpdump抓包必备知识

原创
作者头像
放牛娃学编程
发布2024-06-24 11:37:11
970
发布2024-06-24 11:37:11
举报
文章被收录于专栏:Linux笔记

@author: 放牛娃学编程 @moto: 分享与热爱,不是大爱我不说 @放牛娃每日一语: 除了你自己,没有人可以说你不行

别急着划开,这篇笔记一定能够给你带来收获

因为这里你能学到AI永远也给不了你的知识

Linux tcpdump抓包必备知识

经常听到大佬说,那就抓包排查啊,Linux抓包?听着好高大上啊,其实一点都不高大上,就是一条命令的事情,下面教你成为别人眼中的大佬

一、这才是你该有的思维

二话不多说,我们先测一下,如果下面命令你能不加思索的说出各个参数啥意思,那你不用继续往下看了,因为我相信你是超级牛人(哈哈哈,反正我是记不住)

代码语言:javascript
复制
tcpdump -i ens33 -tttt -nn -A -l dst host 172.19.88.100 and port 9898 | grep -C 30 'abc'

看不懂,别怕,因为这个压根不用你记住,掌握好下面说的思维,你一样可以写出上面看似高大上的命令

之前的文章我就说过很多次这个思想,一个产品的诞生,它想要推广,必然就有配套的使用文档说明,如果没有它那怎么推广出去?而想要学习这个产品的唯一途径就是先看它的使用文档,只是很多人都都不习惯看官方文档罢了,殊不知这才是你学习新技术给你指导最权威的地方

官方文档对各个参数都做了详细的解释,完全不建议放牛娃们死记硬背,需要的时候直接查一下就可了

  • 我画的tcpdump语法简图(也是从官方文档学习的啦)
  • 看官网给的例子

二、实战必备命令

很多小伙伴问,tcpdump命令的官方文档,我访问不了,这是你不学习的理由么?访问不了我之前不是教过你其它命令么?实在不行你不会找我要离线的pdf文档啊

1. 查看文档命令(必须要懂的命令)

代码语言:javascript
复制
# 查看用法
tcpdump --help
​
# 具体参数解释手册
man tcpdump
​
# [expression]表达式手册 具体是否是pcap-filter,请查看man tcpdump 关于expression部分的描述
man pcap-filter

下面命令 网卡名称用ens33举例,ip用172.16.xx.xx举例,端口用9898举例

再提一遍,下面对应命令的参数,千万不要死记硬背,需要的时候快速查阅文档即可,如果你实在懒,那你就收藏这份文章,以后你一定会用的到

2. 过滤指定网卡的数据包

代码语言:javascript
复制
# 用-i参数指定网卡名称
tcpdump -i ens33
​
# 如果不知道哪个网卡是开启的(UP状态),可以用如下命令查看
ip link show

3. 过滤指定网卡指定IP的数据包

代码语言:javascript
复制
# 过滤 目的IP、源IP可在host前面加对应的dir限定参数(看上图),比如dst、src
tcpdump -i ens33 host 172.16.xx.xx
​
# 过滤指定网卡指定目的IP的数据包
tcpdump -i ens33 dst host 172.16.xx.xx

4. 过滤指定网卡指定IP端口的数据包

代码语言:javascript
复制
# 过滤指定网卡指定IP端口的数据包
tcpdump -i ens33 host 172.16.xx.xx and port 9898

5. 过滤指定网卡指定IP端口的数据包,ip地址不要转成域名名称、时间正常显示年月日时分秒

代码语言:javascript
复制
# -n 参数:不要将IP端口转成域名名称
# -tttt 参数:时间戳显示yyyy-mm-dd hh:mm:ss.SS 格式
tcpdump -i ens33 -nn -tttt host 172.16.xx.xx and port 9898

6. 过滤指定网卡指定IP端口的数据包并保存在文件

这个命令现场工程一定要学会,经常听到大佬说:让现场工程抓个包回来,你用这个命令,将对应参数改一下就可以了,这不又让你装了一会大佬(哈哈哈哈)

代码语言:javascript
复制
# 过滤指定网卡指定IP端口的数据包并保存在文件
tcpdump -i ens33 -w test.pcap host 172.16.xx.xx and port 9898
​
# 可以用-C 参数指定写入抓包的文件大小(file_size的单位是百万字节,1,000,000字节,而不是1,048,576字节=1k,你可以差不多近似就1k),达到指定大小则写入另外一个文件,文件后缀编号从1开始
tcpdump -i ens33 -w test.pcap -C 10 host 172.16.xx.xx

7. 每隔一段时间输出到一定格式的文件,并指定文件大小

这里用每隔1分钟来举例:

代码语言:javascript
复制
# 用-G参数 来指定每隔一定时间转储到指定格式(strftime格式)的文件中,文件大小 10*1,000,000字节,(后面expression可以自行加,我这里没有加)
tcpdump -i ens33 -G 60 -w test-%M.pcap -C 10
​
# %M参数需要满足strftime函数定义,含义如下:
%Y:四位数的年份(例如,2023)
%m:两位数的月份(例如,01 到 12)
%d:两位数的日期(例如,01 到 31)
%H:两位数的小时(24 小时制,00 到 23)
%M:两位数的分钟(00 到 59)
%S:两位数的秒(00 到 59)

8. 以 ASCII 格式显示数据包内容,并过滤指定内容

这里的指定内容,用abc来举例

代码语言:javascript
复制
# 参数说明:
# -A: 以 ASCII 格式显示数据包内容
# -l: 设置行缓冲模式(使用 -l 选项可以将 tcpdump 的输出通过管道传输给其他命令,确保数据流实时处理。例如,你可以将 tcpdump 的输出传递给 grep 进行过滤)
tcpdump -i ens33 -A -l port 9898 | grep -C 30 'abc'

有了这8个命令+上面教你的思维方式,我相信其它高级的命令写法,你也能一网打尽。

重要的事情要重复说:上面命令没必要记,但是教你的思维一定要拥抱

三、总结

命令千千万,但只要你拥有我说的思维,你可以写出千千万命令给其它人记(这也是其它博文,复制来复制去的原因)

如果想要这份笔记的pdf文档及tcpdump官方文档pdf,请找放牛娃学编程

以往精彩火爆文章:=>

Linux 通过日志快速定位错误必掌握命令-腾讯云开发者社区-腾讯云 (tencent.com)

Linux vi最少必备掌握命令-腾讯云开发者社区-腾讯云 (tencent.com)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux tcpdump抓包必备知识
    • 一、这才是你该有的思维
      • 二、实战必备命令
        • 1. 查看文档命令(必须要懂的命令)
        • 2. 过滤指定网卡的数据包
        • 3. 过滤指定网卡指定IP的数据包
        • 4. 过滤指定网卡指定IP端口的数据包
        • 5. 过滤指定网卡指定IP端口的数据包,ip地址不要转成域名名称、时间正常显示年月日时分秒
        • 6. 过滤指定网卡指定IP端口的数据包并保存在文件
        • 7. 每隔一段时间输出到一定格式的文件,并指定文件大小
        • 8. 以 ASCII 格式显示数据包内容,并过滤指定内容
      • 三、总结
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档