tcpdump 抓包工具详细图文教程(上)

news2024/11/23 21:15:36

目录

一、tcpdump 抓包工具的基本介绍和学习基础

1.1 常用的抓包工具

1.2 tcpdump 抓包工具介绍

二、tcpdump 抓包工具使用环境和初体验 

2.1 编译安装 tcpdump

2.2 抓包

三、讲解 TCP 协议报文报头

四、tcpdump 抓包工具常规过滤规则 

4.1 tcpdump 的 host 和 net 过滤规则

4.2 tcpdump 基于端口的过滤规则 

4.3 tcpdump 基于协议过滤的规则


一、tcpdump 抓包工具的基本介绍和学习基础

1.1 常用的抓包工具

        作为运维、测试工程师,抓包工具不仅仅是工作中必须要用到的工具,而且是面试过程中也必然会问到的一类工具。

1.2 tcpdump 抓包工具介绍

        TCPdump,全称 dump the traffic on a network,是一个运行在 linux 平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。

tcpdump 可以支持的功能:

  1. 在Linux平台将网络中传输的数据包全部捕获过来进行分析;
  2. 支持网络层、传输层协议等协议捕获过滤;
  3. 数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则;
  4. 提供 and、or、not 等语句进行逻辑组合捕获数据包或去掉不用的信息;
  5. 结合 wireshark 工具分析捕获的报文。

要灵活使用 tcpdump 工具必须要有两个必备的知识基础:

  • Linux 操作系统: 因为这是一款基于 Linux 系统下命令行的抓包工具,所以需要对 Linux 的基本操作和常用命令有一定的基础;
  • 网络知识: 因为 tcpdump 是将网络中传送的数据包完整的截获下来然后进行分析,所以想要分析捕获到的报文,需要了解 OSI 七层网络模型,以及常用网络协议等。

二、tcpdump 抓包工具使用环境和初体验 

tcpdump 下载官方网站:Home | TCPDUMP & LIBPCAP

        大家如果要练习这个工具的使用,可以自己安装一个 Linux 虚拟机,或者自己购买一个 Linux 的云服务器。我这里给大家演示的是 Linux 虚拟机,CentOS 7 的系统。但是基本上所有发行版的Linux 使用这个工具都是差不多的。

2.1 编译安装 tcpdump

[root@mysql01 ~]# tar -zxvf tcpdump-4.99.4.tar.gz
[root@mysql01 ~]# tar -zxvf libpcap-1.10.4.tar.gz 
[root@mysql01 ~]# cd libpcap-1.10.4/
[root@mysql01 ~/libpcap-1.10.4]# ./configure 
[root@mysql01 ~/libpcap-1.10.4]# make && make install
[root@mysql01 ~/libpcap-1.10.4]# cd ../tcpdump-4.99.4/
[root@mysql01 ~/tcpdump-4.99.4]# ./configure 
[root@mysql01 ~/tcpdump-4.99.4]# make && make install

2.2 抓包

Ctrl+C 中断抓包

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

12:26:14.871117 IP mysql01.ssh > 192.168.170.1.62763: Flags [P.], seq 3365399120:3365399316, ack 384892789, win 261, length 196

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

  • 第一列:时分秒毫秒 12:26:14.871117
  • 第二列:网络协议 IP
  • 第三列:发送方的 ip 地址+端口号,(如 192.168.170.1.62763)其中 192.168.170.1 是 ip,而62763 是端口号;(如 mysql01.ssh)mysql01 是主机, ssh 是协议 22 端口
  • 第四列:箭头 >,表示数据流向
  • 第五列:接收方的 ip 地址+端口号,其中 192.168.170.1 是 ip,而 62763 是端口号
  • 第六列:数据包内容,包括 Flags 标识符,seq 号,ack 号,win 窗口,数据长度 length,其中 [P.] 表示 PUSH 标志位为 1,更多标识符大家需要了解 TCP 协议的标志位。 

三、讲解 TCP 协议报文报头

        TCP(Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制。

四、tcpdump 抓包工具常规过滤规则 

4.1 tcpdump 的 host 和 net 过滤规则

基于 IP 地址进行过滤:host

案例 1:截获特定主机 192.168.170.134 的主机收到的和发出的所有的数据包

tcpdump host 192.168.170.134

解释:host 192.168.170.134,指明 192.168.170.134 是一台主机,如果你非常明确关心的是哪个主机的收发报文,那么就可以直接过滤这个主机的数据包。host 后面加主机的 IP 地址,就可以只抓取这个主机的所有数据包,其他主机的数据包就会被过滤掉。

案例 2:获取目的地址是 192.168.170.134 的报文

tcpdump dst 192.168.170.134

解释:dst 指的是目的地址;这个是确定传输方向的关键字,src 源;dst 目的。

基于网段进行过滤:net

案例 3:截获特定网段 192.168.170.0/24 的主机收到的和发出的所有的数据包

tcpdump net 192.168.170.0/24

解释:net 192.168.170.0/24,指明 192.168.170.0/24 网段,可以直接过滤这个网段的数据包网段同样可以再细分为源网段和目标网段。

$ tcpdump src net 192.168

$ tcpdump dst net 192.168 

4.2 tcpdump 基于端口的过滤规则 

基于端口进行过滤:port

案例 4:获取特定端口 比如 http 的包,使用如下命令:

tcpdump tcp port 80

解释:port 80 指明端口 80,只会抓取这个 80 端口的数据包;加上具体某个协议的某个端口,就可以更加精确的捕获对应的业务的数据报文了。如下图,就会只抓取 TCP 协议的 80 端口的数据报,也就是 http 协议的数据报文。 (tcpdump src port 80 / tcpdump dst port 80)

如果你想要同时指定两个端口你可以这样写:tcpdump port 80 or port 22、tcpdump port 80 or 22;

如果你的想抓取的不再是一两个端口,而是一个范围,一个一个指定就非常麻烦了,此时你可以这样指定一个端口段。

  • tcpdump portrange 8000-8080
  • tcpdump src portrange 8000-8080
  • tcpdump dst portrange 8000-8080

对于一些常见协议的默认端口,我们还可以直接使用协议名,而不用具体的端口号:比如http==80,https==443 等:tcpdump tcp port http

4.3 tcpdump 基于协议过滤的规则

基于协议进行过滤:protocal

案例 5:获取 ICMP 协议的报文

tcpdump icmp

解释:标明要抓取的协议报文,一般常用的比如 ip、ip6、arp、icmp、tcp、udp 等。

注意:http、dns、https、ssh 等这些应用层的协议,不能直接这样写,需要写成:tcpdump port http 或者 tcpdump port 53(DNS) 

下一篇文章:tcpdump 抓包工具详细图文教程(下)_Stars.Sky的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/597026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter 又一元老离职,感谢 Tim 这些年的付出

前天在 insiders 收到 Tim Sneath 的离职邮件时感觉很震惊,因为他绝对是 Flutter 团队的元老级人物,几乎每次一次 Flutter 版本发布和社区活动都有他的身影,可以说他是我的 Flutter 领路人之一。 Tim 是在 2017 加入 Flutter 团队&#xff0…

SpringCloud微服务踩坑系列:UnknownContentTypeException

错误信息如下: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.cyf.internalCommon.dto.ResponseResult] and content type [text/plain;charset…

使用WordPress提高企业敏捷性

喜欢WordPress的原因有很多:该平台非常适合内容管理以及控制预算。此外, 在 提高开发效率和简化项目管理方面,WordPress可以通过多种方式提供帮助。 对于任何企业业务,目标始终是在不影响质量的情况下更快地启动项目、发布修复和…

day3 -- select语句学习

文章目录 数据库和表的准备selectselect order byselect whereselect 高级过滤操作使用通配符进行过滤使用正则表达式进行搜索 数据库和表的准备 下载《mysql必知必会》提供的脚本用于创建样例表 cd /mnt/d/unix_dir wget https://forta.com/wp-content/uploads/books/067…

【Linux从入门到精通】进程的状态

当我们了解到进程是什么东西后,我们再来看看进程都会有那些状态。本篇文章会对进程的不同状态进行详解,希望会对你的理解有所帮助! 文章目录 一、了解进程的不同状态 二、详解进程的不同状态 2、1 R运行状态(running) …

开源赋能 普惠未来|中软国际寄语 2023 开放原子全球开源峰会

中软国际作为行业领先的全球化软件与信息技术服务企业及数字化转型服务商,近年来积极布局开源生态(OpenHarmony、openEuler)、智能云、ERP、AIGC、教育科技、智能车六大赛道,加速业务转型创新。 中软国际为开放原子开源基金会白金…

文字环绕图片效果实现

书接上回,我们来讲讲如何实现“文字环绕图片”的效果吧。整体预计实现的效果如下: 日常杂谈 我喜欢看动漫,接下来的所有博客都会和我日常生活结合在一起写,这样感觉会让自己的博客会有温度,我感觉每个人都应该有自己的…

最新喜讯|易知微入选2023数字孪生解决方案提供商TOP50

近日,互联网周刊发布《2023数字孪生解决方案提供商TOP50》,杭州易知微科技有限公司在榜。 中国科学院主管的《互联网周刊》,创刊于1998年,是中国最具公信力的杂志之一,其颁布的榜单极具权威性与专业度,对产…

基于非局部图注意力网络的鲁棒三维形状分类

文章目录 Robust 3D Shape Classification via Non-local Graph Attention Network摘要本文方法Global Structure Network (GSN)Global Relationship Network (GRN)Local Feature Learning based on MLP-STNetwork Channel Fusion ModuleGlobal descriptor 实验结果 Robust 3D …

分布式锁的应用场景与分布式锁实现(四):基于MySQL实现分布式锁与分布式锁总结

分布式锁的应用场景与分布式锁实现(三):基于Zookeeper实现分布式锁 基于MySQL实现分布式锁 ​ 不管是JVM锁还是MySQL锁,为了保证线程的并发安全,都提供了悲观独占排他锁。所以独占排他也是分布式锁的基本要求。 ​ …

在can协议的基础下编写DBC文件,然后使用该DBC文件下发can协议到底盘完整流程

目录 前言一、VectorCANdb下载及安装二、DBC文件的编写1.新建dbc文件2.建立dbc2.1根据CAN协议设置以下的signals2.2设置报文2.3建立报文与信号的关系2.4建立节点 三、编写程序使用UDP通信下发can协议1.查看can口、电脑ip以及端口号2.编写测试程序 前言 最近完成了一个项目&…

热烈庆祝兴业法拍网与宁波银行北京分行签订“法拍贷”业务合作

6月1日,兴业法拍网与宁波银行北京分行签订“法拍贷”合作协议。 “法拍贷”是以法院房产拍卖为核心、线上平台拓宽拍卖渠道、保险公司提供阶段性保证、公证机构加大司法效力、银行提供全程金融服务的“14”创新合作模式。该模式汇聚五方合力让更多竞拍人享受到便利…

2天时间3个面试,百度进了3面!

昨天和朋友复盘了一下最近的面试经历,分享给大家: 关于就业环境 忠告:如果不是在二三线买车买房结婚生子了,还是到一线城市去吧。 或者换个行业! 关于焦虑和摆烂 如果你也在焦虑迷茫、精神内耗。找阳哥给你做“心理…

spring-boot版本影响Spring AOP @Before @Around @After等执行顺序

郁闷了半天,我通过AOP切面打印的日志顺序怪怪的,网上查了好几篇文章都说没问题,最后发现是springboot版本升级后Before Around After等执行顺序发生了变化。 1.切面类 Aspect// 这是一个切面 Component// 这是一个需要被装配的spring bean S…

零基础如何实现 Python 自动化办公 ?

996 一直是互联网老生常谈的话题了,但抛开其他只谈工作本身,你有没有想过,下班晚、加班,有时候可能是因为自己工作比较低效? 在这给你分享一个案例: 场景是在维护日活超过 3 亿用户的微博私信平台&#x…

Linux开机rc.local不自启动执行脚本其他一些问题进行补充说明

Linux开机rc.local不自启动执行脚本其他一些问题进行补充说明 在上一篇,我们讲了Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决 这一篇我们补充一些其他的问题 问题一:我怎么知道我rc.local里面的命令启动成功不成功呢,我怎…

为什么说 Java 比 C / C++ 慢?

因为C/C允许程序员做出更多选择。 选择更多,那么: 弊端:开发效率难以提高,因为有太多选择需要斟酌。 优势:执行效率可以逼近极限,因为不会有什么抽象拦住你。 举个例子吧:大家可能对Java无处不…

New bing出现“重定向”无法使用解决方法来了

我又来分享干货了!!! 因为要润色论文,又是经过几天的折腾,终于可以正常使用bing聊天了,泪目! 首先你要有VPN才能使用New bing聊天的!要求使用edge浏览器(虽然我最后用的…

电脑mp3转换器哪个好用?我来告诉你电脑mp3转换器哪个好

假如你下载了一些音乐或者录音文件,但是它们可能不是mp3格式的,而是其他格式,如wav、flac等。而有一些设备又只能播放mp3格式的音频,这时候就需要使用mp3转换器将其转换成mp3格式,以便于在各种设备上播放和分享。不过你…

RustChinaConf 2023官网上线,精彩议题早知道

随着大会日益临近,我们RustChinaConf 2023筹备委员会的工作也在有条不紊的进行中。最新的好消息来了,官网已上线,访问地址: https://rustcc.cn/2023rustchinaconf/ 从官网进去也可以报名! 大会时间地址 6.17 - 6.1…