当前位置: 首页 > 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 一、摘要 高精度、轻量级和实时响应性是实现自动驾驶的三个基本要求。本研究…...

数学建模--灰色关联分析法

目录 简介 基本原理 应用场景 优缺点 优点&#xff1a; 缺点&#xff1a; 延伸 灰色关联分析法在水质评价中的具体应用案例是什么&#xff1f; 如何克服灰色关联分析法在主观性强时的数据处理和改进方法&#xff1f; 灰色关联分析法与其他系统分析方法&#xff08;如A…...

NetSuite Saved Search迁移工具

我们需要在系统间迁移Saved Search&#xff0c;但是采用Copy To Account或者Bundle时&#xff0c;会有一些Translation不能迁移&#xff0c;或者很多莫名其妙的Dependency&#xff0c;导致迁移失败。因此&#xff0c;我们想另辟蹊径&#xff0c;借助代码完成Saved Search的迁移…...

Java IO模型深入解析:BIO、NIO与AIO

Java IO模型深入解析&#xff1a;BIO、NIO与AIO 一. 前言 在Java编程中&#xff0c;IO&#xff08;Input/Output&#xff09;操作是不可或缺的一部分&#xff0c;它涉及到文件读写、网络通信等方面。Java提供了多种类和API来支持这些操作。本文将从IO的基础知识讲起&#xff…...

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串 字符类型 Java 中一个字符保存一个Unicode字符&#xff0c;所以一个中文和一个英文字母都占用两个字节。 // 计算1 .. 100 public class Hello {public static void main(String[] args) {char a A;char b 中;System.out.println(a);System.out.println(b)…...

Adobe国际认证详解-视频剪辑

在数字化时代&#xff0c;视频剪辑已成为创意表达和视觉传播的重要手段。随着技术的不断进步&#xff0c;熟练掌握视频剪辑技能的专业人才需求日益增长。在这个背景下&#xff0c;Adobe国际认证应运而生&#xff0c;成为全球创意设计领域的重要标杆。 Adobe国际认证是由Adobe公…...

昇思25天学习打卡营第19天|MindNLP ChatGLM-6B StreamChat

文章目录 昇思MindSpore应用实践ChatGML-6B简介基于MindNLP的ChatGLM-6B StreamChat Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 ChatGML-6B简介 ChatGLM-6B 是由清华大学和智谱AI联合研发的产品&#xff0c;是一个开源的、支持…...

.NET在游戏开发中有哪些成功的案例?

简述 在游戏开发的多彩世界中&#xff0c;技术的选择往往决定了作品的成败。.NET技术&#xff0c;以其跨平台的性能和强大的开发生态&#xff0c;逐渐成为游戏开发者的新宠。本文将带您探索那些利用.NET技术打造出的著名游戏案例&#xff0c;领略.NET在游戏开发中的卓越表现。 …...

搜维尔科技:我们用xsens完成了一系列高难度的运动项目并且捕获动作

我们用xsens完成了一系列高难度的运动项目并且捕获动作 搜维尔科技&#xff1a;我们用xsens完成了一系列高难度的运动项目并且捕获动作...

深入探讨:Node.js、Vue、SSH服务与SSH免密登录

在这篇博客中&#xff0c;我们将深入探讨如何在项目中使用Node.js和Vue&#xff0c;并配置SSH服务以及实现SSH免密登录。我们会一步步地进行讲解&#xff0c;并提供代码示例&#xff0c;确保你能轻松上手。 一、Node.js 与 Vue 的结合 1.1 Node.js 简介 Node.js 是一个基于 …...

Unity UGUI 之 Toggle

​本文仅作学习笔记与交流&#xff0c;不作任何商业用途本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正​ 1.什么是Toggle&#xff1f; Unity - Manual: Toggle 带复选框的开关&#xff0c;可…...

做情诗网站/快速开发平台

用法一&#xff1a; 在开发应用程序的时候&#xff0c;经常会遇到这样的情况&#xff0c;会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面&#xff0c;先把它们的可见性都设为View.GONE&#xff0c;然后在代码中动态的更…...

可以做任务赚钱的网站有哪些/百度一下知道官网

QQ邮箱 设置-账户&#xff0c;生成授权码&#xff0c;确认POP3/SMTP服务是已开启的状态。 OutLook 文件 - 添加账户 - 手动设置或其他服务类型 - POP或IMAP 用户名填邮箱账户 其他设置勾选使用与接收邮件服务器相同的配置...

河北住房和城乡建设厅官方网站/关键词点击价格查询

作者&#xff1a;Baijayanta Roy来源&#xff1a;towardsdatascience编译&内容补充&#xff1a;早起Python在用python进行机器学习或者日常的数据处理中&#xff0c;pandas是最常用的Python库之一&#xff0c;熟练掌握pandas是每一个数据科学家的必备技能&#xff0c;本文将…...

注册一个网站需要多少钱/焦作网站seo

1、Java 中会存在内存泄漏吗&#xff0c;请简单描述。 答&#xff1a; 理论上 Java 因为有垃圾回收机制&#xff08;GC&#xff09;不会存在内存泄露问题&#xff08;这也是 Java 被 广泛使用于服务器端编程的一个重要原因&#xff09;&#xff1b;然而在实际开发中&#xf…...

做代购需要什么网站/百度获客

开始于2020年6月15日 方法str.title()以首字母大写的方式显示每个单词 name "ada lovelace" print(name.title()) # Ada Lovelace 方法str.upper()和str.lower() name "Ada Lovelace" print(name.upper()) # ADA LOVELACE print(name.lower()) # ada lov…...

网站怎么做抽奖/上海seo招聘

要成为一个优秀的嵌入式工程师&#xff0c;你需要具备以下技能和素质: 熟练掌握计算机硬件知识&#xff0c;包括微处理器&#xff0c;存储器&#xff0c;输入/输出设备等。 精通嵌入式操作系统&#xff0c;包括实时系统和嵌入式 Linux 等。 熟悉嵌入式编程语言&#xff0c;如 C…...