当前位置: 首页 > news >正文

使用 tcpdump 进行网络流量捕获与分析

目录

    • 安装 `tcpdump`
    • 基本用法
      • 捕获网络流量
      • 指定网络接口
      • 捕获特定主机的流量
      • 捕获特定端口的流量
      • 捕获特定协议的流量
    • 常用选项
      • 保存捕获的数据包
      • 从文件读取数据包
      • 显示数据包内容
      • 指定捕获数据包的长度
      • 限制捕获的数据包数量
      • 显示详细信息
      • 过滤表达式
    • 示例
      • 捕获本地回环接口上的HTTP流量
      • 捕获并保存所有流量到文件
      • 读取并分析保存的流量文件
      • 捕获来自特定主机的TCP流量,并以详细模式显示
      • 捕获特定时间段内的流量
    • 总结

tcpdump 是一个强大的命令行工具,用于在Linux系统上捕获和分析网络流量。它可以帮助你深入了解网络通信的细节,是网络管理员和安全专家必备的工具之一。本文将详细介绍 tcpdump 的安装、基本用法、常用选项和一些实际示例。

安装 tcpdump

在大多数Linux发行版中,tcpdump 可以通过包管理器轻松安装。例如,在Debian或Ubuntu系统中:

sudo apt-get update
sudo apt-get install tcpdump

在CentOS或Red Hat系统中:

sudo yum install tcpdump

安装完成后,可以通过以下命令检查 tcpdump 的版本:

[root@:/etc/init.d]# tcpdump -h
tcpdump version 4.9.2
libpcap version 1.8.1
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ][ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ][ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ][ -Q in|out|inout ][ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ][ --immediate-mode ] [ -T type ] [ --version ] [ -V file ][ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ][ -Z user ] [ expression ]

基本用法

tcpdump 的基本语法如下:

tcpdump [选项] [过滤表达式]

捕获网络流量

默认情况下,tcpdump 会捕获指定网络接口上的所有流量并输出到终端:

sudo tcpdump

指定网络接口

可以使用 -i 选项指定要监听的网络接口:

sudo tcpdump -i eth0

捕获特定主机的流量

使用 host 过滤表达式捕获特定主机的流量:

sudo tcpdump -i eth0 host 192.168.1.1

捕获特定端口的流量

使用 port 过滤表达式捕获特定端口的流量:

sudo tcpdump -i eth0 port 80

捕获特定协议的流量

捕获特定协议(如TCP、UDP、ICMP等)的流量:

sudo tcpdump -i eth0 tcp
sudo tcpdump -i eth0 udp
sudo tcpdump -i eth0 icmp

常用选项

保存捕获的数据包

使用 -w 选项将捕获的数据包保存到文件中:

sudo tcpdump -i eth0 -w capture.pcap

从文件读取数据包

使用 -r 选项从文件读取并分析数据包:

sudo tcpdump -r capture.pcap

显示数据包内容

使用 -X 选项以十六进制和ASCII格式显示数据包内容:

sudo tcpdump -i eth0 -X

指定捕获数据包的长度

使用 -s 选项指定捕获数据包的长度(默认是262144字节):

sudo tcpdump -i eth0 -s 0

限制捕获的数据包数量

使用 -c 选项限制捕获的数据包数量:

sudo tcpdump -i eth0 -c 10

显示详细信息

使用 -v-vv-vvv 选项显示更详细的信息:

sudo tcpdump -i eth0 -v

过滤表达式

tcpdump 支持多种过滤表达式,用于指定要捕获的数据包类型。以下是一些常见的过滤表达式:

  • host {host}:捕获与指定主机相关的数据包。
  • net {network}:捕获与指定网络相关的数据包。
  • port {port}:捕获与指定端口相关的数据包。
  • src {host}:捕获来自指定主机的数据包。
  • dst {host}:捕获发往指定主机的数据包。

可以组合多个过滤表达式以实现更复杂的过滤条件。例如:

sudo tcpdump -i eth0 src 192.168.1.1 and dst port 80

示例

捕获本地回环接口上的HTTP流量

sudo tcpdump -i lo port 80

捕获并保存所有流量到文件

sudo tcpdump -i eth0 -w all_traffic.pcap

读取并分析保存的流量文件

sudo tcpdump -r all_traffic.pcap

捕获来自特定主机的TCP流量,并以详细模式显示

sudo tcpdump -i eth0 tcp and src host 192.168.1.100 -vv

捕获特定时间段内的流量

使用 -G 选项每隔指定秒数旋转输出文件:

sudo tcpdump -i eth0 -w capture-%Y-%m-%d_%H:%M:%S.pcap -G 3600

总结

tcpdump 是一个功能强大的网络流量捕获和分析工具,可以帮助网络管理员和安全专家深入了解网络通信的细节。通过灵活使用各种选项和过滤表达式,你可以高效地捕获和分析所需的网络流量。在日常运维和故障排查中,tcpdump 是一种不可或缺的工具。

相关文章:

使用 tcpdump 进行网络流量捕获与分析

目录 安装 tcpdump基本用法捕获网络流量指定网络接口捕获特定主机的流量捕获特定端口的流量捕获特定协议的流量 常用选项保存捕获的数据包从文件读取数据包显示数据包内容指定捕获数据包的长度限制捕获的数据包数量显示详细信息过滤表达式 示例捕获本地回环接口上的HTTP流量捕获…...

k8s集群 安装配置 Prometheus+grafana

k8s集群 安装配置 Prometheusgrafana k8s环境如下:机器规划: node-exporter组件安装和配置安装node-exporter通过node-exporter采集数据显示192.168.40.180主机cpu的使用情况显示192.168.40.180主机负载使用情况 Prometheus server安装和配置创建sa账号&…...

【Java--数据结构】二叉树oj题(上)

前言 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 判断是否是相同的树 oj链接 要判断树是否一样,要满足3个条件 根的 结构 和 值 一样左子树的结构和值一样右子树的结构和值一样 所以就可以总结以下思路…...

微服务之间Feign调用

需使用的服务 FeignClient(name "rdss-back-service", fallback SysUserServiceFallback.class, configuration FeignConfiguration.class) public interface SysUserService {/*** 订单下单用户模糊查询*/GetMapping(value "/user/getOrderUserName")…...

【Qt】按钮的属性相关API

目录 一. QPushButton 二. QRadioButton 按钮组 三. QCheckBox Qt中按钮的继承体系如下图 QAbstractButton是一个抽象类,集成了按钮的核心属性和API 按钮说明QPushButton(普通按钮)最常见的按钮,用于触发操作或者事件。可以设…...

blender和3dmax和maya和c4d比较

Blender、3ds Max、Maya和Cinema 4D (C4D)都是强大的3D建模和动画软件,但它们各有特点和适用领域。以下是它们的比较: Blender: 开源免费全面的功能,包括建模、动画、渲染、视频编辑等学习曲线较陡峭,但社区支持强大适合独立艺术家…...

visio保存一部分图/emf图片打开很模糊/emf插入到word或ppt中很模糊

本文主要解决三个问题 visio保存一部分图 需求描述:在一个visio文件中画了很多个图,但我只想把其中一部分保存成某种图片格式,比如jpg emf png之类的,以便做后续的处理。 方法:超级容易。 选中希望保存的这部分图&…...

沙尘传输模拟教程(基于wrf-chem)

沙尘传输模拟教程(基于wrf-chem) 文章目录 沙尘传输模拟教程(基于wrf-chem)简介实验目的wrf-chem简介 软件准备wps、wrf-chem安装conda安装ncl安装ncap安装 数据准备气象数据准备下垫面数据准备 WPS数据预处理namelist.wps的设置geogrid.exe下垫面处理ungrib.exe气象数据预处理…...

使用 Python 进行测试(8)纯净测试

原文:Testing with Python (part 8): purity test 总结 如果你要使用综合测试(integrated tests): def test_add_new_item_to_cart(product, cart):new_product Product.objects.create(nameNew Product, price15.00)new_cart…...

python的tkinter、socket库开发tcp的客户端和服务端

一、tcp通讯流程和开发步骤 1、tcp客户端和服务端通讯流程图 套接字是通讯的利器,连接时要经过三次握手建立连接,断开连接要经过四次挥手断开连接。 2、客户端开发流程 1)创建客户端套接字 2)和服务端器端套接字建立连接 3&#x…...

Python面试题:Python中的异步编程:详细讲解asyncio库的使用

Python 的异步编程是实现高效并发处理的一种方法,它使得程序能够在等待 I/O 操作时继续执行其他任务。在 Python 中,asyncio 库是实现异步编程的主要工具。asyncio 提供了一种机制来编写可以在单线程内并发执行的代码,适用于 I/O 密集型任务。…...

【信号频率估计】MVDR算法及MATLAB仿真

目录 一、MVDR算法1.1 简介1.2 原理1.3 特点1.3.1 优点1.3.2 缺点 二、算法应用实例2.1 信号的频率估计2.2 MATLAB仿真代码 三、参考文献 一、MVDR算法 1.1 简介 最小方差无失真响应(Mininum Variance Distortionless Response,MVDR)算法最…...

HarmonyOS NEXT零基础入门到实战-第二部分

HarmonyOS NEXT零基础入门到实战-第二部分 Swiper 轮播组件 Swiper是一个 容器 组件,当设置了多个子组件后,可以对这些 子组件 进行轮播显示。(文字、图片...) 1、Swiper基本语法 2、Swiper常见属性 3、Swiper样式自定义 4、案例&…...

《小程序02:云开发之增删改查》

一、前置操作 // 一定要用这个符号包含里面的${}才会生效 wx.showToast({title: 获取数据成功:${colorLista}, })1.1:初始化介绍 **1、获取数据库引用:**在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用 cons…...

SQL执行流程、SQL执行计划、SQL优化

select查询语句 select查询语句中join连接是如何工作的? 1、INNER JOIN 返回两个表中的匹配行。 2、LEFT JOIN 返回左表中的所有记录以及右表中的匹配记录。 3、RIGHT JOIN 返回右表中的所有记录以及左表中的匹配记录。 4、FULL OUTER JOIN 返回左侧或右侧表中有匹…...

【前端】JavaScript入门及实战41-45

文章目录 41 嵌套的for循环42 for循环嵌套练习(1)43 for循环嵌套练习(2)44 break和continue45 质数练习补充 41 嵌套的for循环 <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"…...

更加深入Mysql-04-MySQL 多表查询与事务的操作

文章目录 多表查询内连接隐式内连接显示内连接 外连接左外连接右外连接 子查询 事务事务隔离级别 多表查询 有时我们不仅需要一个表的数据&#xff0c;数据可能关联到俩个表或者三个表&#xff0c;这时我们就要进行夺标查询了。 数据准备&#xff1a; 创建一个部门表并且插入…...

基于最新版的flutter pointycastle: ^3.9.1的AES加密

基于最新版的flutter pointycastle: ^3.9.1的AES加密 自己添加pointycastle: ^3.9.1库config.dartaes_encrypt.dart 自己添加pointycastle: ^3.9.1库 config.dart import dart:convert; import dart:typed_data;class Config {static String password 成都推理计算科技; // …...

K8S内存资源配置

在 Kubernetes (k8s) 中&#xff0c;资源请求和限制用于管理容器的 CPU 和内存资源。配置 CPU 和内存资源时&#xff0c;使用特定的单位来表示资源的数量。 CPU 资源配置 CPU 单位&#xff1a;Kubernetes 中的 CPU 资源以 “核” (cores) 为单位。1 CPU 核心等于 1 vCPU/Core…...

【多任务YOLO】 A-YOLOM: You Only Look at Once for Real-Time and Generic Multi-Task

You Only Look at Once for Real-Time and Generic Multi-Task 论文链接&#xff1a;http://arxiv.org/abs/2310.01641 代码链接&#xff1a;https://github.com/JiayuanWang-JW/YOLOv8-multi-task 一、摘要 高精度、轻量级和实时响应性是实现自动驾驶的三个基本要求。本研究…...

30分钟快速搭建企业级工作流系统:RuoYi-Flowable-Plus完整指南

30分钟快速搭建企业级工作流系统&#xff1a;RuoYi-Flowable-Plus完整指南 【免费下载链接】RuoYi-Flowable-Plus 本项目基于 RuoYi-Vue-Plus 进行二次开发扩展Flowable工作流功能&#xff0c;支持在线表单设计和丰富的工作流程设计能力。如果觉得这个项目不错&#xff0c;麻烦…...

C/C++进阶知识1.0

C/C进阶知识 1.delete与delete[ ] ClassA *pclassanew ClassA[5]; delete pclassa; 与 int *p new int[5]; delete p; 1.1内置类型 不调用析构函数 1.2自定义类型 析构函数调用一次 2.内存知识 2.1栈堆增长方向不同的原因&#xff1a; 栈向下增长堆向上增长的设计目的是…...

ARM A53上跑通1080P实时EIS防抖?手把手教你优化特征点与透视变换(附代码思路)

ARM A53实战&#xff1a;1080P实时EIS防抖的7个关键优化策略 当行车记录仪的镜头在颠簸路面剧烈晃动&#xff0c;或是运动相机在冲浪时被海浪拍打&#xff0c;画面稳定性的价值就凸显出来。传统光学防抖受限于物理结构&#xff0c;而电子防抖(EIS)通过算法补偿成为嵌入式设备的…...

OV2640摄像头模块实战指南:从硬件连接到图像处理

1. OV2640摄像头模块初探&#xff1a;为什么选择它&#xff1f; 第一次接触OV2640摄像头模块时&#xff0c;我被它的小巧身材和强大性能惊艳到了。这个只有指甲盖大小的模块&#xff0c;居然能输出200万像素的高清图像&#xff0c;而且功耗低到能让电池供电设备连续工作数小时。…...

避开C盘爆满!保姆级教程:在D盘安装Unity 2023.2f1c1和VS2022社区版

避开C盘爆满&#xff01;保姆级教程&#xff1a;在D盘安装Unity 2023.2f1c1和VS2022社区版 对于刚接触游戏开发的新手来说&#xff0c;安装Unity和Visual Studio往往是遇到的第一个"拦路虎"。更让人头疼的是&#xff0c;这两个"重量级"开发工具默认都会占…...

Amazon Corretto 17全链路优化指南:从底层原理到企业级实践

Amazon Corretto 17全链路优化指南&#xff1a;从底层原理到企业级实践 【免费下载链接】corretto-17 Amazon Corretto 17 is a no-cost, multi-platform, production-ready distribution of OpenJDK 17 项目地址: https://gitcode.com/gh_mirrors/co/corretto-17 Amazo…...

突破PDF文字识别困境:Umi-OCR开源工具的全流程解决方案

突破PDF文字识别困境&#xff1a;Umi-OCR开源工具的全流程解决方案 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件&#xff0c;适用于Windows系统&#xff0c;支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/Git…...

别再乱放菜单了!SolidWorks插件UI设计避坑指南:C#二次开发中13个菜单位置的正确用法

SolidWorks插件UI设计黄金法则&#xff1a;C#二次开发中的13个菜单位置实战解析 当你的SolidWorks插件功能越来越丰富&#xff0c;是否遇到过这样的尴尬&#xff1a;用户反馈"功能藏得太深"、"操作路径太长"&#xff1f;这往往不是功能本身的问题&#xff…...

告别本地局限!OpenClaw从本地监听改公网监听,手把手实操教程

💡 前言 在部署OpenClaw的过程中,很多小伙伴都会遇到一个共性问题:服务默认仅监听本地回环地址([127.0.0.1](127.0.0.1)),只能在服务器本机访问,完全没法满足远程管理、跨设备调用、公网服务暴露的实际业务需求。想要让OpenClaw真正发挥作用,核心就是把监听模式从本地…...

动态生成展示:LiuJuan20260223Zimage模型根据实时天气创作“风晴雨雪”主题画

动态生成展示&#xff1a;LiuJuan20260223Zimage模型根据实时天气创作“风晴雨雪”主题画 你有没有想过&#xff0c;家里的数字画框或者手机壁纸&#xff0c;能像有生命一样&#xff0c;随着窗外的天气实时变化&#xff1f;今天&#xff0c;我就带你体验一个特别有意思的玩法&…...