详解tcpdump

tcpdump 是一个强大的命令行网络分析工具,用于抓取和分析网络流量。下面是 tcpdump 的常用参数及其详细说明,包含抓取所有网络接口的方法和 -S 参数的作用。

基础参数

  1. -i <interface>
    指定要监听的网络接口。如果你希望抓取所有接口的流量,可以使用 -i any

    sudo tcpdump -i any
    • any 表示抓取所有可用接口的流量。
    • 示例:监控特定接口 eth0
      sudo tcpdump -i eth0
  2. -c <count>
    指定抓取的数据包数量,达到指定数量后自动停止抓取。

    sudo tcpdump -c 10
    • 示例:只抓取 5 个数据包:
      sudo tcpdump -i eth0 -c 5
  3. -w <file>
    将抓取到的数据包保存到指定文件中,通常为 .pcap 格式,便于后续分析。

    sudo tcpdump -i eth0 -w capture.pcap
    • 示例:保存数据包到 capture.pcap 文件中:
      sudo tcpdump -i eth0 -c 100 -w capture.pcap
  4. -r <file>
    从已保存的 .pcap 文件读取数据包并显示其内容。

    tcpdump -r capture.pcap
  5. -v, -vv, -vvv
    增加输出的详细程度。使用 -v 会提供更多的信息,-vv-vvv 进一步增加输出的详细程度。

    sudo tcpdump -i eth0 -v
  6. -n
    禁止将 IP 地址解析为域名,直接显示 IP 地址,以减少 DNS 解析带来的延迟。

    sudo tcpdump -i eth0 -n
  7. -nn
    禁止将 IP 地址解析为域名和将端口解析为服务名,所有信息均以数字形式显示。

    sudo tcpdump -i eth0 -nn
  8. -A
    以 ASCII 格式显示数据包的内容,适合查看基于文本协议(如 HTTP)的流量。

    sudo tcpdump -i eth0 -A
  9. -X
    以十六进制和 ASCII 格式显示数据包的内容,适合深入分析数据包。

    sudo tcpdump -i eth0 -X
  10. -s <snaplen>
    指定抓取数据包的长度。默认长度为 68 字节,使用 -s 0 可以捕获完整数据包。

    sudo tcpdump -s 0
  11. -S
    显示绝对序列号,而不是相对序列号。这在分析 TCP 流量时非常有用,因为可以更清楚地看到数据流的绝对序列号。

    sudo tcpdump -i eth0 -S

高级过滤器

  1. 指定协议
    过滤特定协议的数据包。

    • 抓取 TCP 数据包
      sudo tcpdump -i eth0 tcp
    • 抓取 UDP 数据包
      sudo tcpdump -i eth0 udp
  2. 指定端口
    使用端口号过滤数据包。

    • 抓取 HTTP 流量(80 端口)

      sudo tcpdump -i eth0 port 80
    • 抓取多个端口(如 80 和 443)的数据包

      sudo tcpdump -i eth0 port 80 or port 443
  3. 指定 IP 地址
    使用 hostsrcdst 过滤基于 IP 地址的数据包。

    • 抓取特定 IP 地址的数据包

      sudo tcpdump -i eth0 host 192.168.1.100
    • 抓取源 IP 为 192.168.1.100 的数据包

      sudo tcpdump -i eth0 src 192.168.1.100
    • 抓取目标 IP 为 192.168.1.100 的数据包

      sudo tcpdump -i eth0 dst 192.168.1.100
  4. 逻辑运算符
    结合多个过滤条件使用 andornot 进行复杂过滤。

    • 抓取 TCP 协议并且源 IP 为 192.168.1.100 的数据包

      sudo tcpdump -i eth0 tcp and src 192.168.1.100
    • 抓取源 IP 不是 192.168.1.100 的数据包

      sudo tcpdump -i eth0 not src 192.168.1.100

抓取 HTTPS 流量

如果想抓取 HTTPS 流量(通常基于 TCP 443 端口),可以使用以下命令:

sudo tcpdump -i eth0 port 443

注意:HTTPS 流量是加密的,无法直接查看内容。

示例

  1. 抓取所有接口的流量

    sudo tcpdump -i any
  2. 抓取所有来自 192.168.1.100 的 TCP 数据包

    sudo tcpdump -i eth0 tcp and src 192.168.1.100
  3. 抓取特定端口(如 80 和 443)的流量

    sudo tcpdump -i eth0 port 80 or port 443
  4. 使用 tcpdump 实时分析 HTTP 请求

    sudo tcpdump -i eth0 -A port 80

总结

tcpdump 是一个功能强大的网络抓包工具,提供了丰富的参数和选项,使得网络流量分析变得灵活高效。了解并熟练使用这些参数可以帮助你有效地抓包和分析网络流量,特别是在调试网络问题和性能瓶颈时。

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

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

相关文章

【MySQL】入门篇—SQL基础:数据查询语言(DQL):复杂的SELECT语句

在实际应用中&#xff0c;复杂的SELECT语句可以帮助我们从多个表中提取相关信息&#xff0c;进行数据分析&#xff0c;生成报告&#xff0c;甚至进行数据挖掘。 掌握复杂的SELECT语句对于数据分析师、数据库管理员和开发者来说是必不可少的技能。 应用场景&#xff1a; 多表查…

Android 中获取当前 CPU 频率和占用率

最近在优化 App 的性能&#xff0c;需要获取当前 CPU视频频率和占用率&#xff0c;通过查询资料&#xff0c;大致思路如下&#xff1a; 目前没有标准的 API 来获取 CPU 的使用频率&#xff0c;只能通过读取指定 CPU 文件获取当前 CPU 频率&#xff0c;在某些机器或者特定版本中…

STM32 独立看门狗和窗口看门狗区别

文章目录 1. 时钟源不同独立看门狗&#xff08;IWDG&#xff09;时钟源&#xff1a;特点&#xff1a; 窗口看门狗&#xff08;WWDG&#xff09;时钟源&#xff1a;特点&#xff1a; 2. 中断机制不同独立看门狗&#xff08;IWDG&#xff09;中断机制&#xff1a; 窗口看门狗&…

如何快速部署一套智能化openGauss测试环境

一、openGauss介绍 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行&#xff0c;允许用户自由地复制、使用、修改和分发软件。openGauss内核深度融合了华为在数据库领域多年的研发经验&#xff0c;结合企业级场景需求&#xff0c;持续构建竞争力…

STM32 ADC介绍

文章目录 STM32 ADC介绍一、ADC的基本概念二、STM32 ADC的主要特点高分辨率&#xff1a;多通道输入&#xff1a;多种工作模式&#xff1a;内置温度传感器和参考电压&#xff1a; 三、ADC的工作原理采样阶段&#xff1a;转换阶段&#xff1a;数据存储&#xff1a; 四、ADC的配置…

集合相关:asList()和subList()方法的作用?

1.asList()方法 Arrays.asList(T... a)返回一个固定大小的列表&#xff0c;这个返回的列表的底层实现是一个final修饰的数组&#xff0c;其引用关系不能发生变化&#xff0c;并且它的大小也是固定的&#xff0c;可以修改和读取里面的元素值&#xff0c;但是不能添加或删除元素。…

基于SpringBoot+Vue+uniapp微信小程序的婚庆摄影小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

在docker的容器内如何查看Ubuntu系统版本

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; docker 一、问题描述 由于 lsb_release -a 只能查看自己电脑&#xff08;宿主机&#xff09;的系统版本&#xff0c;如果在docker的容器内又应该如何查看Ubuntu系统版本呢&#xff…

vue3导出,下载,预览,上传

1.导出 try {let response null;response await exportCheckAmendment({type: 2,reportId: row.id});if (response.size < 100) return ElMessage.warning("暂无修订件");// 处理请求返回的文件流const content response as BlobPart;const blob new Blob([co…

机器学习—学习率的选择

如果你选择适当的学习率&#xff0c;你的学习算法将运行得更好&#xff0c;如果太小&#xff0c;它会跑得很慢&#xff0c;如果太大&#xff0c;它甚至可能不会收敛&#xff0c;那么如何为模型选择一个好的学习率呢&#xff1f; 如果绘制多次迭代的成本&#xff0c;注意到成本…

vue3中用axios请求怎么添加cookie

在 Vue 3 中使用 axios 发起请求时&#xff0c;可以通过配置 axios 的请求选项来携带 Cookies。具体来说&#xff0c;确保跨域请求时&#xff0c;设置 withCredentials: true&#xff0c;以便发送和接收 Cookies。 1. Axios 配置携带 Cookie 首先确保你在 axios 请求中设置了…

深度学习笔记20_数据增强

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 一、我的环境 1.语言环境&#xff1a;Python 3.9 2.编译器&#xff1a;Pycharm 3.深度学习环境&#xff1a;TensorFlow 2.10.0 二、GPU设置…

PHP中的ReflectionClass常见用法

ReflectionClass是 PHP 中的一个类&#xff0c;它提供了有关类的信息的反射。 使用ReflectionClass可以在运行时获取关于类的各种信息&#xff0c;例如类的名称、方法、属性、注释等。 以下是一些常见的用法&#xff1a; 获取类的名称&#xff1a; $reflection new Reflec…

LLM实践--支线:拯救Continue Pretrain的数据

背景 首先介绍下什么是Continue Pretrain&#xff08;CP&#xff09;。CP 和 Pretrain、SFT一样指的是 LLM 训练的一个阶段&#xff0c;在前大模型时代还被称作Post Pretrain。CP 是在Pretrain和SFT之间的训练阶段&#xff0c;目的是为模型注入领域知识&#xff0c;这个领域是…

mqtt客户端订阅一直重复连接?

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者&#xff0c;我们创造bug&#xff0c;传播bug&#xff0c;毫不留情地消灭bug&#xff0c;在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案&#xff0c;感兴…

解决使用MobaXterm不能向Ubuntu上传下载文件的问题

如上图所示 解决方案 新建连接&#xff0c;使用root账户建立ssh会话&#xff0c;就是建立会话的时候&#xff0c;用户名使用root。ubuntu系统默认不允许远程root账户建立连接&#xff0c;表现就是你新建ssh会话&#xff0c;在第一步输入root密码的时候&#xff0c;密码正确会报…

一文探索RareShop:首个面向消费者的RWA NFT商品发售平台

作者&#xff1a;Weilin&#xff0c;PANews 本轮牛市中&#xff0c;加密消费级应用正成为一种热门趋势&#xff0c;比如pump.fun和Polymarket等产品已成为C端用户的明星。加密货币正日益渗透到日常消费者的产品、服务和行为中。这意味着加密货币的使用不再局限于投机交易或去中…

appium启动hbuild打包的apk异常解决

目录 一、错误信息 二、问题解决 2.1 通过以下命令获取安装包名称&#xff1a; 2.2 这个launcher状态下的安装包名称和active&#xff0c;替换原先的安装包名称 一、错误信息 通过adb shell dumpsys activity | findstr "mResume" 命令获取的安装包信息&#xff…

从零开始学习OMNeT++系列第三弹——新建一个使用INET框架的工程

上一篇学习了如何新建一个omnet的工程&#xff0c;这篇来学习下INET框架以及如何使用INET框架来新建一个工程。 INET框架是什么 INET框架是一个开源模型库&#xff0c;用于OMNeT仿真环境。它为研究者和学生在使用通信网络时提供协议、代理和其他模型。当设计和验证新协议或探…

深入理解计算机系统--计算机系统漫游

对于一段最基础代码的文件hello.c&#xff0c;解释程序的运行 #include <stdio.h>int main() {printf ( "Hello, world\n") ;return 0; }1.1、信息就是位上下文 源程序是由值 0 和 1 组成的位&#xff08;比特&#xff09;序列&#xff0c;8 个位被组织成一组…