iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux 的抓包操作(tcpdump)
  • 841
分享到

linux 的抓包操作(tcpdump)

linuxtcpdump运维 2023-09-27 14:09:53 841人浏览 薄情痞子
摘要

linux 查看网络状况(netstat) 使用 netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat 的命令就是: netstat -lnp //打印当前系统启动哪些端口

linux 查看网络状况(netstat)

使用 netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat 的命令就是:
netstat -lnp //打印当前系统启动哪些端口
以及
netstat -an  //打印网络连接状况
如果你所管理的服务器是一台提供 WEB 服务(80 端口)的服务器,那么你就可以使用 netstat -an |grep 80 开查看当前连接 web 服务的有哪些 IP 了。

抓取操作流程

1.首先确定系统有没有安装 tcpdump 工具,使用命令:
which tcpdump
如果打印出/usr/sbin/tcpdump 说明有安装,如果没有则去安装一个 tcpdump 工具:

sudo apt-get install tcpdump

2.开始抓包,使用 tcpdump -D(如果没有权限加 sudo)命令查看可以抓包的网络接口

 3.如上所示,可以看到我的机器中所有可以抓包的网络接口。其中特殊接口 any 可用于抓取所有活动的网络接口的数据包。现在就可以对网络接口进行抓包,例如我们使用 sudo tcpdump -I any 命令对 any 接口进行抓包:

         tcpdump 会持续抓包直到收到中断信号。你可以按 Ctrl+C 来停止抓包。正如上面示例所示,tcpdump 抓取了超过 9000 个数据包。在这个示例中,由于是通过 ssh 连接到服务器,所以 tcpdump 也捕获了所有这类数据包。-c 选项可以用于限制 tcpdump 抓包的数量:例如:可以使用 sudo tcpdump -I any -c 5 指定抓 5 个包分析

         如上所示,tcpdump 在抓取 5 个数据包后自动停止了抓包。这在有些场景中十分有用 ,比如你只需要抓取少量的数据包用于分析。当我们需要使用过滤规则抓取特定的数据包(如下所示)时,-c 的作用就十分突出了。

        在上面示例中,tcpdump 默认是将 IP 地址和端口号解析为对应的接口名以及服务协议名称。而通常在网络故障排查中,使用 IP 地址和端口号更便于分析问题;用-n 选项显示IP 地址,-nn 选项显示端口号:例如:

         如上所示,抓取的数据包中显示 IP 地址和端口号。这样还可以阻止 tcpdump 发出 DNS查找,有助于在网络故障排查中减少数据流量。

数据包解析

        tcpdump 能够抓取并解码多种协议类型的数据报文,如 TCP、UDP、ICMP 等等。这里只分析下 TCP 类型的数据报文。更多有 tcpdum 的详细介绍可以参考其帮助手册。 tcpdump 抓取的 TCP 报文看起来如下:

         具体的字段根据不同的报文类型会有不同,但上面这个例子是一般的格式形式。第一个字段 08:41:13.729687 是该数据报文被抓取的系统本地时间戳。然后,IP 是网络层协议类型,这里是 IPv4,如果是 IPv6 协议,该字段值是 IP6。192.168.64.28.22 是源 ip 地址和端口号,紧跟其后的是目的 ip 地址和其端口号,这里是 192.168.64.1.41916。

        在源 IP 和目的 IP 之后,可以看到是 TCP 报文标记段 Flags [P.]。该字段通常取值如下:

         该字段也可以是这些值的组合,例如 [S.] 代表 SYN-ACK 数据包。

        接下来是该数据包中数据的序列号 。对于抓取的第一个数据包,该字段值是一个绝对数字,后续包使用相对数值,以便更容易查询跟踪。例如此处 seq 196:568 代表该数据包包含该数据流的第 196 到 568 字节。         接下来是 ack 值:ack 1。该数据包是数据发送方,ack 值为 1。在数据接收方,该字段代表数据流上的下一个预期字节数据 ,例如,该数据流中下一个数据包的 ack 值应该是 568。接下来字段是接收窗口大小 win 309,它 表示接收缓冲区中可用的字节数 ,后跟 TCP 选项如 MSS(最大段大小)或者窗口比例值。更详尽的 TCP 协议内容请参考 Transmission Control Protocol (TCP) Parameters (iana.org)         最后,length 372 代表数据包有效载荷字节长度 。这个长度和 seq 序列号中字节数值长度是不一样的。

数据包过滤

        正如上面所提,tcpdump 可以抓取很多种类型的数据报文,其中很多可能和我们需要查找的问题并没有关系。举个例子,假设你正在定位一个与 web 服务器连接的网络问题,就不必关系 SSH 数据报文,因此在抓包结果中过滤掉 SSH 报文可能更便于你分析问题。tcpdump 有很多参数选项可以设置数据包过滤规则,例如根据源 IP 以及目的 IP 地址,端口号,协议等等规则来过滤数据包。下面就介绍一些最常用的过滤方法。 方法一:通过协议 1. 在命令中指定协议便可以按照协议类型来筛选数据包。比方说用如下命令只要抓取 ICMP报文:

2. 再打开一个终端,去 ping 其他网络地址,例如:

 

 3. 回到运行 tcpdump 命令的终端中,可以看到它筛选出了 ICMP 报文。这里 tcpdump 并没 有显示有关 opensource.com 的域名解析数据包: 方法二.通过主机 1. 用 host 参数只抓取和特定主机相关的数据包:

 如上所示,只抓取和显示与 54.204.39.132 有关的数据包。

 方法三.通过端口

1.tcpdump 可以根据服务类型或者端口号来筛选数据包。例如,抓取和 Http 服务(http 服务 器端口号为 80)相关的数据包:

 

方法四.ip 地址/主机名 1.同样,你也可以根据源 IP 地址或者目的 IP 地址或者主机名来筛选数据包。例如抓取源 IP 地址为 192.168.122.98 的数据包:

 

        注意此处示例中抓取了来自源 IP 地址 192.168.122.98 的 53 端口以及 80 端口的数据包,它们的应答包没有显示出来因为那些包的源 IP 地址已经变了。相对的,使用 dst 就是按目的 IP/主机名来筛选数据包。

 方法五.多条件筛选

 1.当然,可以使用多条件组合来筛选数据包,使用 and 以及 or 逻辑操作符来创建过滤规则。例 如,筛选来自源 IP 地址 192.168.122.98 的 HTTP 数据包:

 也可以使用括号来创建更为复杂的过滤规则,但在 shell 中请用引号包含你的过滤规则以防止被识别为 shell 表达式:

        上面例子中我们只抓取了来自源 IP 为 192.168.122.98 或者 54.204.39.132 的 HTTP (端号 80)的数据包。使用该方法就很容易抓取到数据流中交互双方的数据包了。

 检查数据包内容

        有时我们需要分析网络连接问题,可能需要分析数据包中的内容来判断什么内容需要被发 送、什么内容需要被接收等。tcpdump 提供了两个选项可以查看数据包内容,-X 以十六进制打印出数据报文内容,-A 打印数据报文的 ASCII 值。         例如,HTTP 请求报文内容如下:

        这对定位一些普通 HTTP 调用 api 接口的问题很有用。当然如果是加密报文,这个输出也就没多大用了。

保存抓取数据  

        1.tcpdump 提供了保存抓包数据的功能以便后续分析数据包。例如,你可以夜里让它在那里抓包,然后早上起来再去分析它。同样当有很多数据包时,显示过快也不利于分析,将数据包保存下来,更有利于分析问题。         使用 -w 选项来保存数据包而不是在屏幕上显示出抓取的数据包:

        该命令将抓取的数据包保存到文件 webserver.pcap。后缀名 pcap 表示文件是抓取的数据包格式。         正如示例中所示,保存数据包到文件中时屏幕上就没有任何有关数据报文的输出,其中 - c10 表示抓取到 10 个数据包后就停止抓包。如果想有一些反馈来提示确实抓取到了数据包,可以使用 -v 选项。         2.tcpdump 将数据包保存在二进制文件中,所以不能简单的用文本编辑器去打开它。使用 -r 选项参数来阅读该文件中的报文内容:

 

 

来源地址:https://blog.csdn.net/jiu_yue_ya/article/details/130885221

--结束END--

本文标题: linux 的抓包操作(tcpdump)

本文链接: https://www.lsjlt.com/news/419798.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux 的抓包操作(tcpdump)
    linux 查看网络状况(netstat) 使用 netstat 命令用来打印网络连接状况、系统所开放端口、路由表等信息。最常用的关于netstat 的命令就是: netstat -lnp //打印当前系统启动哪些端口 ...
    99+
    2023-09-27
    linux tcpdump 运维
  • tcpdump抓包命令
    tcpdump 是Linux下一种网络抓包命令 tcpdump 提供了大量的选型以及各种过滤表达式,使你能更好的抓到指定的数据包 Linux抓包实际情况通常用tcpdump抓取包,然后把数据包放到wireshark 工具分析数据包 下面介绍...
    99+
    2023-09-02
    tcpdump 网络 服务器
  • Linux中tcpdump抓包的原理是什么
    这篇文章主要介绍“Linux中tcpdump抓包的原理是什么”,在日常操作中,相信很多人在Linux中tcpdump抓包的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中tcpdump抓包...
    99+
    2023-06-27
  • linux中tcpdump抓取HTTP包的示例分析
    这篇文章将为大家详细讲解有关linux中tcpdump抓取HTTP包的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。tcpdumptcpdump是linux系统自带的抓包工具,主要通过命令行的方式...
    99+
    2023-06-10
  • Linux下抓包工具tcpdump怎么样
    这篇文章主要介绍了Linux下抓包工具tcpdump怎么样,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最...
    99+
    2023-06-13
  • Linux下怎么使用tcpdump进行抓包
    这篇文章主要讲解了“Linux下怎么使用tcpdump进行抓包”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么使用tcpdump进行抓包”吧!tcpdump是Linux下面的一...
    99+
    2023-06-09
  • Linux系统抓包工具tcpdump怎么用
    今天给大家介绍一下Linux系统抓包工具tcpdump怎么用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。tcpdump是Linux系统中一个数据包解析工具,...
    99+
    2023-06-28
  • 抓包工具tcpdump怎么用
    小编给大家分享一下抓包工具tcpdump怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现...
    99+
    2023-06-15
  • Linux网络抓包工具tcpdump的详细介绍
    这篇文章主要介绍“Linux网络抓包工具tcpdump的详细介绍”,在日常操作中,相信很多人在Linux网络抓包工具tcpdump的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux网络抓包工具...
    99+
    2023-06-13
  • python调用tcpdump抓包过滤
    之前在linux用python脚本写一个抓包分析小工具,实在不想用什么libpcap、pypcap所以,简单来了个tcpdump加grep搞定。基本思路是分别起tcpdump和grep两个进程,进程直接通过pipe交换数据,简单代码如下:...
    99+
    2023-01-31
    python tcpdump
  • tcpdump抓包规则命令大全
    一、抓取http协议包 获取get请求 tcpdump -nn -i eth1 -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' 获取post请求 tcpdu...
    99+
    2023-09-13
    tcpdump java 测试工具
  • 如何使用tcpdump命令抓包
    如何使用tcpdump命令抓包 一、前言二、tcpdump命令使用 一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,小伙伴们,让我们一起来学习如何使用tcpdump命令抓包。如果文...
    99+
    2023-08-31
    tcpdump 网络 服务器
  • 如何在linux系统中使用tcpdump抓包工具
    本篇文章给大家分享的是有关如何在linux系统中使用tcpdump抓包工具,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1 tcpdump选项它的命令格式为:tcpdump...
    99+
    2023-06-13
  • Linux中如何使用wireshark分析tcpdump抓取的数据包
    这篇文章将为大家详细讲解有关Linux中如何使用wireshark分析tcpdump抓取的数据包,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。很多时候我们的系统部署在Linux系统上面,在一...
    99+
    2023-06-06
  • 服务器抓包-tcpdump使用简介
    文章目录 1、写在前面2、常用参数3、条件过滤4、支持的逻辑表达式参考博客 1、写在前面 tcpdump是Linux里的字符界面的数据抓包分析软件,用tcpdump抓到的数据包可以使用绝大...
    99+
    2023-09-22
    tcpdump linux 抓包
  • 实战:tcpdump抓包分析三次握手四次挥手
    本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。执行tcpdump命令...
    99+
    2023-06-05
  • 实践tcpdump命令,成为网络数据抓包高手
    文章目录 前言一、tcpdump 命令介绍二、语法格式及常用选项2.1文件操作参数2.2 监听及停止条件参数2.3 输出时间戳格式参数2.4 分析信息详情参数据 三、参考案例3.1 查看本机全部网卡信息3.2 监听指定网卡设备...
    99+
    2023-08-19
    tcpdump linux 运维 服务器 原力计划
  • linux抓包工具是什么
    本篇内容主要讲解“linux抓包工具是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux抓包工具是什么”吧!linux抓包工具:1、Charles,通过成为电脑或者浏览器的代理,截取请...
    99+
    2023-06-30
  • linux中有哪些抓包命令
    linux中有哪些抓包命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于P...
    99+
    2023-06-15
  • python3使用libpcap库进行抓包及数据处理的操作方法
    目录一、安装libpcap库1、在线安装2、离线安装2.1 下载离线安装文件2.2 执行离线安装操作二、使用libpcap库1、导入及指定pcap库2、常用API介绍2.1 获取网络...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作