将 Tcpdump 输出内容重定向到 Wireshark
在 Linux 系统中使用 Tcpdump 抓包后分析数据包不是很方便。
通常 Wireshark 比 tcpdump 更容易分析应用层协议。
一般的做法是在远程主机上先使用 tcpdump 抓取数据并写入文件,然后再将文件拷贝到本地工作站上用 Wireshark 分析。
还有一种更高效的方法,可以通过 ssh 连接将抓取到的数据实时发送给 Wireshark 进行分析。
经过我的测试,已经实现把 Tcpdump 抓到的数据包转到 Windows 环境中用 Wireshark 打开。
方式1:数据包文件的拷贝
思路:Tcpdump 抓包并保存包数据文件,再把保存的包数据文件拷贝到 Windows 中,最后使用 Windows 上安装的 Wireshark 打开包数据文件。
使用工具:Xshell (使用 Xshell 连接远程主机)+ Xftp (把远程主机上的包数据拷贝到本地)
使用 Xshell 和 Xftp 连接远程主机的过程省略……
假设你已经很熟悉在 Linux 环境下使用 tcpdump 命令和在 Windows 环境下使用 wireshark 基础操作了。
tcpdump 官方文档:
tcpdump(1) man page | TCPDUMP & LIBPCAP
比如:我要在远程主机上抓取 eth0 网卡的 20 条 tcp 数据包,并保存为 test.pcap 文件:
tcpdump -i eth0 -c 20 tcp -w test.pcap

上面的命令,我是 cd 进入 /usr/local/tcpdump 目录下执行的。
所以,我用 Xftp工具打开此目录后就看到生成的包文件 test.pcap

用 Xftp 工具把 Linux 中的文件 test.pcap 下载到 Windows 中

接下来使用 Wireshark 打开 test.pcap 包文件,此时即可分析抓到的 20 条 tcp 数据包

方式2:通过 ssh 连接远程主机,将 tcpdump 抓取到的数据包实时发送给 Wireshark 进行分析
思路:Windows 环境中使用 ssh 命令实现远程主机登录,登录后用 tcpdump 命令抓包并把数据包设置标准输出,运行 wireshark 程序从标准输入读取包数据。
工具:cmd 控制台 + Wireshark
1.右击 wireshark 进入到安装目录,在目录栏输入cmd ,然后回车进入 cmd 控制台。



2.准备命令
2.1 先在打开的 cmd 控制台中测试这条命令:ssh root@xxx.xxx.xxx.xxx -p 22

ssh 命令用于通过 SSH 协议连接到远程主机,实现远程登录和执行命令,它加密会话中的所有通信,确保数据传输的安全性。
ssh root@xxx.xxx.xxx.xxx -p 22
参数说明
[root@]xxx.xxx.xxx.xxx:要连接的远程主机的用户名和主机名。- -p 22:指定连接到远程主机的端口号。
根据提示输入远程主机的密码,登录远程主机

2.2 登录成功后在远程主机抓取 eth0 网卡的 20 条 tcp 数据包的命令
tcpdump -i eth0 -c 20 tcp

通过以上两步可以知道目前和远程主机是建立连接的。
2.3 Wireshark 命令
在 wireshark 官网找到文档,选择自己需要的命令
线鲨(1) (wireshark.org)
https://www.wireshark.org/docs/man-pages/wireshark.html比如:我后续会新打开 wireshark 安装目录进入 cmd 控制台,输入: Wireshark.exe -k -i -
命令拆分,说明:
(1)Wireshark.exe(可以看看你的安装目录是不是这个名称),在 cmd 控制台启动 wireshark 应用程序


(2)-k -i -
官网文档中说:-k 是立即捕获会话;-i - 表示从标准输入读取数据。


如果在 cmd 控制台执行命令:Wireshark.exe -k -i -
命令则会打开 Windows 中安装的 wireshark 程序并开始监听(-i - 从标准输入读取数据)。

3. 把刚才的命令组合起来
命令组合初期的样子:
ssh root@xxx.xxx.xxx.xxx -p 22 tcpdump -i eth0 -c 20 tcp Wireshark.exe -k -i -
看起来是这个样子,但现在有个问题是“抓包的数据怎么传送?”,所以组合后的命令还不完整,接下来对 tcpdump 的抓包命令进行改进。查看 tcpdump 官方文档。


通过文档可以知道 -l -w - 对我接下来有用。
比如:抓取 eth0 网卡的 20 条 tcp 数据包输出到标准输出。
命令是:tcpdump -i etho -c 20 tcp -l -w -
回头看刚才的 “Wireshark.exe -k -i -”是从标准输入读取数据,那么现在“tcpdump -i etho -c 20 -l -w -”是输出到标准输出,再结合 ssh 命令则可以实现:远程 + 输出包数据 + 读取包数据
4. ssh + tcpdump + wireshark
新打开一个wireshark安装目录的 cmd 控制台,输入命令:
ssh root@xxx.xxx.xxx.xxx -p 22 "tcpdump -i eth0 -c 20 tcp -l -w -" | Wireshark.exe -k -i -
接着 cmd 控制台会提示让输入登录远程主机的密码,同时 Wireshark 程序启动。

输入密码后回车,远程连接主机成功,然后执行 tcpdump 抓包,同时包数据在 wireshark 程序中呈现。

方式3:在远程主机打开本地的 wireshark 软件
方式3参考下面的博客,但是没有成功。
因为方式一和方式二已经够用了,所以后续在测试方式三……
参考:Linux下使用Wireshark抓包教程_wireshark linux-CSDN博客

相关文章:
将 Tcpdump 输出内容重定向到 Wireshark
在 Linux 系统中使用 Tcpdump 抓包后分析数据包不是很方便。 通常 Wireshark 比 tcpdump 更容易分析应用层协议。 一般的做法是在远程主机上先使用 tcpdump 抓取数据并写入文件,然后再将文件拷贝到本地工作站上用 Wireshark 分析。 还有一种更高效的方法…...
【Python蓝屏程序(管理员)】
说明:该程序为临摹(😀)作品,源地址C蓝屏程序(非管理员) 我试图使用Python调用 NtRaiseHardError API ,实现类似的蓝屏效果。可惜我发现Python在普通权限下,直接调用 NtRaiseHardError API 是不被允许的,因为…...
OpenGL ES->GLSurfaceView绘制图形的流程
自定义View代码 class MyGLSurfaceView(context: Context, attrs: AttributeSet) : GLSurfaceView(context, attrs), GLSurfaceView.Renderer {var mProgrem 0init {// 设置 OpenGL ES 3.0 版本setEGLContextClientVersion(3)// 设置当前类为渲染器, 注册回调接口的实现类set…...
Linux OOM Killer详解
Linux OOM Killer详解 一、概述二、OOM Killer的技术原理1. 内存区域划分2. 内存耗尽与OOM Killer触发3. 选择被杀进程的策略4. 内存回收机制5. 内存分配策略 三、OOM Killer的工作机制1. 内存压力监测2. 触发条件3. 选择被杀进程4. 终止进程 四、实际场景举例场景一࿱…...
2024rk(案例二)
试题二(25分) 阅读以下关于数据库缓存的叙述,在答题纸上回答问题1至问题3。 【说明】 某大型电商平台建立了一个在线 B2B 商店系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物…...
小红书爆文秘籍:ChatGPT助你从0到1创造热门内容!
在小红书打造爆款文案的策略中,以下是一些调整和同义词替换的建议,以便达到文章去重的要求: 了解目标受众: 在撰写文案前,先深入分析目标读者的属性,如年龄层次、性别、爱好和购买行为。通过ChatGPT, 你能迅…...
django快速实现个人博客(附源码)
文章目录 一、工程目录组织结构二、模型及管理实现1、模型2、admin管理 三、博客展现实现1、视图实现2、模板实现 四、部署及效果五、源代码 Django作为一款成熟的Python Web开发框架提供了丰富的内置功能,如ORM(对象关系映射)、Admin管理界面…...
K8s部署篇之手动部署二进制高可用集群架构
一、系统环境初始化 一)架构设计 所有节点都操作:3个master(etcd集群三个节点)和2个node 1、K8s服务调用如图 2、各组件说明 1、API Server 供Kubernetes API接口,主要处理 REST操作以及更新ETCD中的对象所有资源增删…...
【Unity/XLua】xlua自带教程示例分析(6)—— lua协程
文章目录 工具准备协程测试 工具准备 首先是工具脚本,一个Coroutine_Runner.cs和一个cs_coroutine.lua 前者定义了一个继承自Monobehavior的脚本组件,后者则使用lua去在Unity中实例化一个挂载该组件的GameObject,并将其设置为DontDestroyOn…...
CV目标检测概述
文章目录 目标检测概述目标检测图像分割目标检测和图像分割的区别 目标检测概述 目标检测和图像分割是计算机视觉中的两个重要任务,它们有着不同的目的和应用。以下是它们的简要介绍和区别: 目标检测 目标检测(Object Detection࿰…...
如何在notebook中运行nodejs
在 Python 生态系统的推动下,机器学习和人工智能日益流行,这带来了计算笔记本的概念。这些交互式计算平台主要是为以 Python 为中心的数据科学应用而开发的,它们将代码、计算输出、解释性文本和多媒体合并成一个有内聚力的文档。 作为 JavaS…...
Mybatis学习-day19
Mybatis学习-day19 1. resultMap resultMap 是 MyBatis 中最复杂的元素,主要用于解决实体类属性名与数据库表中字段名不一致的情况,可以将查询结果映射成实体对象。 <resultMap id"staffAndDep" type"com.easy.bean.Staff">…...
IDEA构建SpringBoot多模块项目
前言 最近一直在思考一个问题,springboot的多模块项目到底是怎么运行和运作的? 一般我们大部分的springboot项目都是单模块的项目,但是如果后续有要求开发多模块的项目应该怎么处理?于是基于这点进行了研究。 本次文章将会带大…...
【前端】NodeJS:nvm
文章目录 1 介绍2 使用2.1 下载安装2.2 常用命令 1 介绍 nvm全称:Node Version Manager,顾名思义它是用来管理node版本的工具,方便切换不同版本的Node.js。 2 使用 nvm的使用非常的简单,跟npm的使用方法类似。 2.1 下载安装 …...
Docker网络模式及通信
一、Docker默认的网络通信 1.1 Docker安装后默认的网络设置 Docker服务器安装完成之后,默认在每个宿主机会生成一个名称为docker0的网卡,其IP地址都是172.17.0.1/16 [rootubuntu1804 ~]#apt -y install bridge-utils [rootubuntu1804 ~]#brctl show 另…...
类模板实现实现Qt click/hover自定义操作
一、场景 常常会需要实现点击/hover时修改图片,可能是一个QPushButton、QLabel、QToolButton…… 由于Qt bug,QIcon/QSS只能实现常规态、按下态的图标切换,hover态的图片设置无效。 解决思路无非是安装事件过滤器、自定义类并重实现事件。 …...
Arco Design:引领未来的Vue 3创意先锋,一键开启高效与美感并重的Web开发之旅!
Arco Design 是一个基于 Vue 3 的 UI 框架,它提供了丰富的组件和样式,可以帮助开发者快速构建高质量的 Web 应用程序。以下是 Arco Design 的一些详细特点: 完整的设计系统:Arco Design 提供了一套完整的设计系统,包括…...
【MySQL】Linux下用C/C++链接MySQL数据库
文章目录 一、准备工作二、验证库和接口的使用三、链接数据库四、对数据库进行增删查改增删改查 五、结尾 一、准备工作 要使用C链接数据库, 首先要去MySQL官网下载官网提供的库, MySQL 社区下载. 如图所示: 接着选择: 按需选择版本: 如果用的是云服务器, 那么在安装mysql时…...
Python金融量化专栏简介
量化分析实战 - 专栏大纲 👉👉👉 《玩转Python金融量化专栏》👈👈👈 订阅本专栏的可以下载对应的代码和数据集 专栏目标 本专栏旨在帮助读者全面掌握使用Python进行金融技术指标的计算与应用,从基础到高级,涵盖各种技术指标的实现、策略开发与回测等内容。通过…...
出行365:依托分布式数据库,让出行无忧 | OceanBase案例
*本文首发自“新华社环球”杂志,作者张海鑫 每年的暑期旅游旺季,都会触发一轮轮的文旅消费的热潮,对于互联网出行服务行业而言,这既是一场盛大的狂欢,也是对其综合实力的严峻考验。 然而,自去年暑假起&…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
