tcpdump使用详解

2023-11-05

1. tcpdump的语法格式

tcpdump [option] [proto] [dirction] [type]
  • option:可选参数

  • proto:协议过滤器,可识别的关键词有
    • http,tcp,udp,icmp,ip,ip6,arp,rarp
  • type:类型过滤器。可识别的关键词
    • host,net,port,portrange。这些词后面还需要再接参数
  • directiron:数据流向过滤器,可识别的关键字
    • src,dst,src or dst

2. 抓包结果

19:30:12.208604 IP 172.17.0.3.mysql > 172.17.0.4.36216: Flags [P.], seq 132:176, ack 1, win 227, options [nop,nop,TS val 3168643546 ecr 3168628546], length 44

2.1 输出内容结构

  • 时间
  • 协议
  • 发送方IP+端口号
  • 数据流向
  • 接收方IP+端口号
  • 冒号
  • 数据包内容:包含Flags标识符,seq号,ack号,win窗口,数据长度length

2.2 Flags标识符

  • [S]: SYN(开始连接)
  • [P]: PSH(推送数据)
  • [F]: FIN(结束连接)
  • [R]: RST(重置连接)
  • [.]: 可以用来表示ACK标志位1

3. 常规过滤规则

3.1 基于host过滤

tcpdump host 210.21.48.1
tcpdump host www.baidu.com

3.2 基于网段进行过滤

tcpdump net 192.168.10.0/24
#指定源地址是某个网段
tcpdump src net 192.168

3.3 基于端口过滤

tcpdump port 8088
# 监视多个端口
tcpdump port 80 or port 8080
# 监视范围内的端口
tcpdump portrange 80-8080
# 指定目的端口号
tcpdump dst port 80

3.4 基于协议过滤

tcpdump icmp
tcpdump udp
tcpdump 'ip && tcp'

3.5 常规过滤规则如果添加多个过滤规则用and 或者or连接

4. 可选参数解析

4.1 监视指定网卡的数据包

tcpdump -i eth0
# 监听所有网卡
tcpdump -i any 
  • 如果不指定网卡,tcpdump一般只会监视第一个网卡,即eth0

4.2 不把IP地址和端口号转换为名字

# 会以数字的形式显示端口号
tcpdump -nn port 80

4.3 将过滤结果输出到文件 

# 过滤结果输出到指定文件中
tcpdump icmp -w icmp.pcap

4.4 从文件中读取包数据

tcpdump icmp -r all.pcap

4.5  指定抓包截取的前多少字节(默认96)

tcpdump -s 100
# 0表示截取报文全部内容
tcpdump -s 0

4.6 抓取指定个数的数据包

tcpdump -c 10

5. 其他过滤方式

5.1 基于包大小进行过滤

tcpdump less 32

tcpdump greater 64

tcpdump <= 128

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tcpdump使用详解 的相关文章

  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • Linux shell 脚本中的 while 循环超时

    这工作正常 无限循环 while TRUE do printf done 我在尝试着timeout this while loop与timeout命令 所有这些都不起作用 timeout 5 while TRUE do printf don
  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc

随机推荐

  • 在网页中内嵌网页

    目录 文章目录 前言 代码展示 主页代码 展示作品的代码 球体运动 方块旋转 结果演示 前言 在制作个人网站时 经常遇到一个问题 就是如何让自己的作品动态的显示在主页上 而本文就是找到了解决办法 利用标签 引入想要的结果 代码展示 主页代码
  • 自学Python能做哪些副业?我一般不告诉别人

    Python作为今天的互联网不可或缺的一门技能 可以成为自己的主业以外 其实它也还是可以成为副业的 那么学好python后可以从事的副业有哪些呢 自学Python能干的副业 1 兼职处理数据 分析数据是很重要的一点 那么利用python 就
  • 结构化思维的训练方式

    转自 https www sohu com a 198266900 628522 结构化思维 Structured Thinking 是指人在面对工作任务或者难题时 能从多个侧面进行思考 深刻分析导致问题出现的原因 系统制定行动方案 并采取
  • python实现剪刀石头布小游戏

    首先实现系统随机出剪刀石头布 import random 首先导入random模块 k 剪刀 石头 布 创建一个列表 列表共有我们所需要用到的三个元素 m random choice k 用该函数随机从k中取一个元素并赋值给m m便为剪刀石
  • MySql嵌套查询+关联查询+多表查询+对应案例+mybatis动态sql 超详细

    最近学习MyBatis框架 用到多表查询比较多 以前学的不是很好 今特意回来补上 呜呜呜 有对MySql数据库的初步使用不是很了解的朋友们 可以切换到这里噢 https blog csdn net haobo article details
  • [CMake教程] if 和 else

    目录 一 基本语法 二 基本用法 三 其他用法 3 1 逻辑运算 3 2 存在性检查 3 3 文件操作 3 4 数值比较 3 5 字符串比较 3 6 版本比较 3 7 路径比较 CMake 3 24引入 一 基本语法 if
  • 华为od机考真题-最少面试官数

    while 1 try n int input nums for in range n nums append list map int input
  • MQTT 协议入门:基础知识和快速教程

    本文是 MQTT 协议的入门指南 提供了实用的代码示例 物联网和 MQTT 的初学者可以通过本文掌握 MQTT 的基本概念 快速开启 MQTT 服务和应用的开发 什么是 MQTT MQTT Message Queuing Telemetry
  • Dell服务器通过IDRAC9收集TSR日志排查故障

    登陆IDRAC9 WEB管理界面 在菜单栏 lt 维护 gt 下选择 在联网的情况下推荐完成SupportAssist的注册 根据提示安装ISM并进行信息登记 如暂不注册 则点击取消继续 进入SupportAssist界面 点击 lt 开始
  • vue3+antv x6自定义节点样式

    前篇 vue3 ts使用antv x6 自定义节点 先大致定下节点样式 需要展示标题 输入 输出连接桩 参考样子大概是 https x6 antv antgroup com examples showcase practices class
  • 使用Pdb调试Python

    简单介绍 Python自带 Pdb库 使用 Pdb调试 Python程序还是很方便的 但是远程调试 多线程 Pdb是搞不定的 本文参考的相关文章如下 指针和字符串和字符串常量 用gdb来获取非法内存中的内容 Linux gdb调试器用法全面
  • 二维带权邮局位置(选址)问题(分别求横坐标、纵坐标的带权中位数)C++实现

    带权邮局位置问题 已知n个点p1 p2 pn及与它们相联系的权重w1 w2 wn 我们希望能找到一点p 不一定是输入点中的一个 使和式 最小 此处d a b 表示点a和点b之间的距离 找出二维带权邮局位置问题的最佳解答 其中所有的点都是 x
  • V4L2下摄像头的详细参数调整

    Linux下V4L2相关头文件所在路径为 内核源码目录 include linux videodev2 h V4L2相关API文档可查看链接https linuxtv org downloads v4l dvb apis uapi v4l
  • R语言实战之如何绘制线性回归图表(附详细代码解释,小白也可看懂~)

    R语言实战之如何绘制线性回归图表 线性回归是统计学中最简单的模型之一 此章节主要讲述如何利用R语言来绘制线性图表 尽可能用最简单的语句写出所需的图表 适合帮助没有R语言编程基础的同学写出好看的论文 下面展示一个依剂量对比药物A和药物B的响应
  • Oracle中Hint深入理解(转)

    Hint概述 基于代价的优化器是很聪明的 在绝大多数情况下它会选择正确的优化器 减轻了DBA的负担 但有时它也聪明反被聪明误 选择了很差的执行计划 使某个语句的执行变得奇慢无比 此时就需要DBA进行人为的干预 告诉优化器使用我们指定的存取路
  • vue打包到生产环境

    1 进入到项目根目录执行 npm run build 此时会自动打包在dist目录下 2 安装服务 npm install g serve 3 启动 serve dist 以上是生产环境打包的过程 npm run dev 是开发环境 npm
  • JavaWebの知识讲解(JDBC+JSP+Servlet)

    JavaWeb 一 web开发的背景知识 web 顾名思义是网页的意思 如 www baidu com web分为静态web和动态web 1 静态web 纯前端网站即使静态web 只使用html css等前端语言进行编写 静态web提供给所
  • git:在gitignore中设置不忽略的文件(夹)

    说明 用的不算多 但是想用的时候总会忘记 这里插个眼 参考 https blog csdn net CalShell article details 52670175 总结 活用
  • 微信小程序如何调用API实现数据请求-wx.request()

    前言 微信小程序不存在ajax 那么它是如何实现数据请求功能的呢 微在信中提供了API的调用wx request OBJECT 这个是很不错的 下面就讲一下如何请求数据 简单到不行 wx request 看文档时 提供了示例模板如下 wx
  • tcpdump使用详解

    1 tcpdump的语法格式 tcpdump option proto dirction type option 可选参数 proto 协议过滤器 可识别的关键词有 http tcp udp icmp ip ip6 arp rarp typ