网络故障处理及分析工具:Wireshark和Tcpdump集成

news2024/9/20 13:39:23

Wireshark 是一款免费的开源数据包嗅探器和网络协议分析器,已成为网络故障排除、分析和安全(双向)中不可或缺的工具。

本文深入探讨了充分利用 Wireshark 的功能、用途和实用技巧。

无论您是开发人员、安全专家,还是只是对网络操作感到好奇,本博客都将增强您对 Wireshark 及其应用程序的了解。

1.Wireshark简介

Wireshark 最初由 Eric Rescorla 和 Gerald Combs 开发,旨在实时捕获和分析网络数据包。它的功能涵盖各种网络接口和协议,使其成为任何参与网络工作的人员的多功能工具。与命令行对应工具 tcpdump 不同,Wireshark 的图形界面简化了分析过程,以用户友好的“原型视图”呈现数据,该视图以分层结构组织数据包。这有助于快速识别协议、端口和数据流。

Wireshark 的主要功能包括:

  • 图形用户界面 (GUI):与命令行工具相比,简化了网络数据包的分析。
  • Proto View:以树形结构显示数据包数据,简化协议和端口识别。
  • 兼容性:支持各种网络接口和协议。

2.浏览器网络监视器

FireFox 和 Chrome 内置了更高级的网络监视器工具。它之所以更高级,是因为它使用起来更简单,并且可以开箱即用地与安全网站配合使用。如果您可以使用浏览器调试网络流量,那么您应该这样做。

如果您的流量需要低级协议信息或不在浏览器范围内,Wireshark 是下一个最佳选择。

3.安装和入门

要开始使用 Wireshark,请访问其官方网站进行下载。安装过程很简单,但应注意命令行工具的安装,这可能需要单独的步骤。启动 Wireshark 后,用户会看到一系列网络接口选择,如下所示。选择正确的接口(例如用于本地服务器调试的环回)对于捕获相关数据至关重要。

调试本地服务器 (localhost) 时使用环回接口。远程服务器可能适合 en0 网络适配器。您可以使用网络适配器旁边的活动图来识别要捕获的活动接口。

4.使用滤波器过滤噪声

使用 Wireshark 的挑战之一是捕获的数据量太大,包括不相关的“背景噪音”,如下图所示。
在这里插入图片描述
Wireshark 通过强大的显示过滤器解决了这个问题,允许用户专注于特定端口、协议或数据类型。例如,过滤端口 8080 上的 TCP 流量可以显著减少不相关的数据,从而更容易调试特定问题。

请注意,Wireshark UI 顶部有一个完成小部件,可让您更轻松地找到值。

在这种情况下,我们按端口 tcp.port == 8080 进行过滤,这是 Java 服务器(例如 Spring Boot/tomcat)中通常使用的端口。

但这还不够,因为 HTTP 更简洁。我们可以通过将 http 添加到过滤器来按协议进行过滤,从而将视图缩小到 HTTP 请求和响应,如下图所示。
在这里插入图片描述

5.深入进行数据分析

Wireshark 擅长以易于理解的方式剖析和呈现网络数据。例如,携带 JSON 数据的 HTTP 响应会自动解析并以可读的树结构显示,如下所示。此功能对开发人员和分析师来说非常有价值,无需手动解码即可深入了解客户端和服务器之间交换的数据。

Wireshark 在数据包分析窗格中解析并显示 JSON 数据。它为原始数据包数据提供十六进制和 ASCII 视图。

6.更多用法

虽然 Wireshark 的基本功能可以满足各种网络任务的需求,但其真正的优势在于高级功能,例如以太网网络分析、HTTPS 解密和跨设备调试。但是,这些任务可能涉及复杂的配置步骤,以及对网络协议和安全措施的更深入了解。

使用 Wireshark 时面临两大挑战:

  • HTTPS 解密:解密 HTTPS 流量需要额外配置,但可以查看安全通信。
  • 设备调试:Wireshark 可用于排除各种设备上的网络问题,需要具备特定的网络配置知识。

7.HTTPS 加密的基础知识

HTTPS 使用传输层安全性 (TLS) 或其前身安全套接字层 (SSL) 来加密数据。此加密机制可确保在 Web 服务器和浏览器之间传输的任何数据都保持机密且不受影响。该过程涉及一系列步骤,包括握手、数据加密和数据完整性检查。

解密 HTTPS 流量通常是开发人员和网络管理员排除通信错误、分析应用程序性能或确保敏感数据在传输前正确加密所必需的。它是一种强大的功能,可以诊断复杂问题,而这些问题无法通过简单地检查未加密的流量或服务器日志来解决。

8.Wireshark中解密HTTPS的方法

重要提示:解密 HTTPS 流量只能在您拥有或有明确权限进行分析的网络和系统上进行。未经授权解密网络流量可能违反隐私法和道德标准。

8.1.预主密钥记录

一种常用方法是使用预主密钥解密 HTTPS 流量。Firefox 和 Chrome 等浏览器在配置后可以将预主密钥记录到文件中。Wireshark 随后可以使用此文件解密流量:

  • 配置浏览器:设置环境变量 (SSLKEYLOGFILE) 以指定浏览器将保存加密密钥的文件。

  • 捕获流量:使用 Wireshark 照常捕获流量。

  • 解密流量:将 Wireshark 指向具有预主密钥的文件(通过 Wireshark 的首选项)以解密捕获的 HTTPS 流量。

8.2.使用代理

另一种方法是通过代理服务器路由流量,该代理服务器解密 HTTPS 流量,然后在将其发送到目的地之前重新加密。此方法可能需要设置一个可以处理 TLS 加密/解密的专用解密代理:

  • 设置解密代理:Mitmproxy 或 Burp Suite 等工具可以充当解密和记录 HTTPS 流量的中介。

  • 配置网络以通过代理路由:确保客户端的网络设置通过代理路由流量。

  • 检查流量:使用代理的工具直接检查解密的流量。

9.将 tcpdump 与 Wireshark 集成以增强网络分析

虽然 Wireshark 提供了用于分析网络数据包的图形界面,但在某些情况下,由于安全策略或操作限制,直接使用它可能无法实现。 tcpdump 是一个功能强大的命令行数据包分析器,在这些情况下变得非常有用,它提供了一种灵活且侵入性较小的捕获网络流量的方法。

10.tcpdump 在网络故障排除中的作用

tcpdump 允许在没有图形用户界面的情况下捕获网络数据包,非常适合在具有严格安全要求或资源有限的环境中使用。它的工作原理是将网络流量捕获到文件中,然后可以在以后或使用 Wireshark 在另一台机器上进行分析。

10.1.tcpdump 的主要使用场景

  • 高安全性环境:在银行或政府机构等地方,运行网络嗅探器可能会带来安全风险,而 tcpdump 则提供了一种侵入性较小的替代方案。
  • 远程服务器:由于 Wireshark 具有图形界面,因此在云服务器上调试问题可能具有挑战性;tcpdump 捕获的内容可以传输到本地并进行分析。
  • 注重安全性的客户:客户可能不愿意让第三方工具在其系统上运行;tcpdump 的命令行操作通常更容易接受。

10.2.高效地使用 tcpdump

使用 tcpdump 捕获流量需要指定网络接口和捕获的输出文件。此过程简单但功能强大,可以详细分析网络交互:

  • 命令语法:启动捕获的基本命令结构包括指定网络接口(例如,无线连接的 en0)和输出文件名。
  • 执行:运行命令后,tcpdump 会默默捕获网络数据包。捕获会持续进行,直到手动停止,此时可以将捕获的数据保存到指定的文件中。
  • 在 Wireshark 中打开捕获:可以在 Wireshark 中打开 tcpdump 生成的文件进行详细分析,利用 Wireshark 的高级功能来剖析和理解网络流量。

下面显示了 tcpdump 命令及其输出:

$ sudo tcpdump -i en0 -w output
Password:
tcpdump: listening on en, link-type EN10MB (Ethernet), capture size 262144 bytes
^C3845 packets captured
4189 packets received by filter
0 packets dropped by kernel

11.总结

Wireshark 是一款功能强大的网络分析工具,可提供对网络流量和协议的深入洞察。无论是用于低级网络工作、安全分析还是应用程序开发,Wireshark 的功能和能力都使其成为技术库中必不可少的工具。通过实践和探索,用户可以利用 Wireshark 发现有关其网络的详细信息、解决复杂问题并更有效地保护其环境。

Wireshark 将易用性与深厚的分析深度相结合,确保它仍然是各个领域网络专业人士的首选解决方案。它的持续发展和广泛适用性凸显了其在网络分析领域的基石地位。

将 tcpdump 捕获网络流量的功能与 Wireshark 的分析能力相结合,为网络故障排除和分析提供了全面的解决方案。这种组合在无法或不理想的直接使用 Wireshark 的环境中特别有用。虽然这两种工具由于功能强大且复杂而具有陡峭的学习曲线,但它们共同构成了网络管理员、安全专业人员和开发人员不可或缺的工具包。

这种集成方法不仅解决了在各种操作环境中捕获和分析网络流量的挑战,而且还突出了可用于理解和保护现代网络的工具的多功能性和深度。

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

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

相关文章

Unity格斗游戏,两个角色之间互相锁定对方,做圆周运动

1,灵感来源 今天手头的工作忙完了,就等着服务器那边完活,于是开始研究同步问题。 正好想到之前想做的,两个小人对线PK,便有了这篇文章。 2,要实现的效果 如图所示,两个小人可以互相锁定&…

RuoYi-后端管理项目入门篇1

目录 前提准备 下载若依前后端 Gitee 地址 准备环境 后端数据库导入 1 克隆完成 若依后端管理后端 Gitte 地址 :若依/RuoYi-Vue 2.1 创建Data Source数据源 2.2 填写好对应的数据库User 和 Password 点击Apply 2.3 新建一个Schema 2.4 填写对应数据库名称 这边演示写的…

linux shell脚本编程(分支语句、循环语句)

一、分支语句 1、语法结构 : if 表达式 then 命令表 fi 如果表达式为真 , 则执行命令表中的命令 ; 否则退出 if 语句 , 即执行 fi 后面的语句。 if 和 fi 是条件语句的语句括号 , 必须成对使用 ;命令表中的命令可以是一条 , 也可以是若干条。 2、语法结构为 : if 表达式 t…

Flink源码学习资料

Flink系列文档脑图 由于源码分析系列文档较多,本人绘制了Flink文档脑图。和下面的文档目录对应。各位读者可以选择自己感兴趣的模块阅读并参与讨论。 此脑图不定期更新中…… 文章目录 以下是本人Flink 源码分析系列文档目录,欢迎大家查阅和参与讨论。…

leetcode日记(42)螺旋矩阵

我使用的是递归&#xff0c;每次递归遍历一圈矩阵&#xff0c;将遍历结果塞进结果vector中&#xff0c;每次遍历修改上下左右边界&#xff0c;直至遍历后其中两边界重合或交错。 class Solution { public:vector<int> spiralOrder(vector<vector<int>>&…

MySQL双主双从实现方式

双主双从&#xff08;MM-SS&#xff09; 前言 避免单一主服务器宕机&#xff0c;集群写入能力缺失 从 1 复制 主1 &#xff0c;从 2 复制 主 2 主 1 复制 主 2&#xff0c;主 2 复制主 1 也就是 主 1 和主 2 互为主从。主1主2互为主从&#xff0c; 是为了以下情景&#xff0c…

Fork_Join模式:分治和Work-Stealing的完美结合

引言 在计算机科学领域&#xff0c;解决大规模数据和复杂计算任务的需求促使了并行计算模型的发展。Fork/Join模式以其独特的分治和Work-Stealing结合的方式&#xff0c;成为解决可分解并行问题的一项卓越选择。本文将重点探讨Fork/Join模式中分治和Work-Stealing的关键优势&a…

【网络】掌握网络基础概念

文章目录 OSI七层模型TCP/IP五层&#xff08;或四层&#xff09;模型为什么要有TCP/IP协议网络传输的基本流程网络传输流程图数据包封装和分用 网络中的地址管理IP地址Mac地址比较IP地址和Mac地址 OSI七层模型 OSI即Open System Interconnection,开发系统互连。OSI七层模型是一…

电气电工增加收入需规避的16大陷阱

电工接线是电气工程中非常重要的环节&#xff0c;为什么实施项目之后&#xff0c;存在电工叫苦&#xff0c;老板说亏&#xff0c;这到底是什么原因&#xff1f;是什么影响了电工的效率&#xff0c;阻碍了电工收入的增加&#xff1f; 下面我们汇总一下平时在项目中遇到的陷阱&a…

spring核心内容基本解读、spring中IOC控制反转入门案例,debug带你剖析Spring容器机制和结构(图文讲解,简单易懂)。

目录 1.spring核心内容大概解读 2.spring的IOC(控制反转容器机制剖析) 2.1 来份快速入门案例 2.2 debug剖析spring容器的机制和结构 1.spring核心内容大概解读 1. 在线文档 : https://docs.spring.io/spring-framework/docs/current/reference/html/ 2. 离 线 文 档 …

STM32智能健康监测系统教程

目录 引言环境准备智能健康监测系统基础代码实现&#xff1a;实现智能健康监测系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;健康监测与管理问题解决方案与优化收尾与总结 1. 引言 智能健康监测系统通…

SDXL 1.0 下载和部署

SD XL 1.0 重磅更新&#xff01;免费开源可商用&#xff08;附在线使用本地部署教程&#xff09; - 优设网 - 学设计上优设 三、本地部署 SDXL 1.0 SDXL 1.0 的源文件已经在 Huggingface 上开源了&#xff0c;我们可以通过 Stable Diffusion WebUI 在本地免费使用 SDXL 1.0&am…

[C/C++入门][ifelse]19、制作一个简单计算器

简单的方法 我们将假设用户输入两个数字和一个运算符&#xff08;、-、*、/&#xff09;&#xff0c;然后根据所选的运算符执行相应的操作。 #include <iostream> using namespace std;int main() {double num1, num2;char op;cout << "输入 (,-,*,/): &quo…

python项目为什么用WSGI

小背景 Java用的时间久了&#xff0c;web项目启动的时候直接启动主程序就行&#xff0c;因为spring web项目内置了Tomcat web服务器&#xff0c;服务器的配置一般也是采用默认的配置&#xff0c;所以很少关注底层实现&#xff0c;关注点主要在应用程序功能。 初学python的时候…

DDei在线设计器-HTML渲染

Html渲染 HtmlViewer插件通过将一个外部DIV附着在图形控件上&#xff0c;从而改变原有图形的显示方式。允许使用者自己定义HTML通过HTML元素。本示例演示了通过Html来扩展渲染图形&#xff0c;从而获得更加丰富的图形展现。 通常情况下&#xff0c;我们创建的图形控件&#xff…

Wireshark抓取HTTP

HTTP请求响应 使用wireshark抓取 本地机器是192.168.33.195&#xff0c;远程机器是192.168.32.129&#xff0c;远程HTTP服务端口是9005 TCP/IP实际共分为4层&#xff0c;抓包信息中可以看到各层的数据&#xff0c;最上面的数据帧包含了所有数据。 附&#xff1a;抓取本地H…

【Harmony】SCU暑期实训鸿蒙开发学习日记Day2

目录 Git 参考文章 常用操作 ArkTS的网络编程 Http编程 发送请求 GET POST 处理响应 JSON数据解析 处理响应头 错误处理 Web组件 用生命周期钩子实现登录验证功能 思路 代码示例 解读 纯记录学习日记&#xff0c;杂乱&#xff0c;误点的师傅可以掉了&#x1…

体验智慧校园学工管理的社团类型功能

在智慧校园学工管理的框架下&#xff0c;社团类型的精细化管理成为了激发学生兴趣、促进社团多样性与规范性的关键。这一功能的核心在于构建一个清晰的社团分类体系&#xff0c;确保每一种社团都能在其所属领域内蓬勃发展&#xff0c;同时&#xff0c;也便于校园管理者进行有效…

C#与C++交互开发系列(一):引言:为什么需要C#与C++交互开发

C#与C交互开发系列&#xff08;一&#xff09;&#xff1a;引言&#xff1a;为什么需要C#与C交互开发 欢迎来到C#与C交互开发系列博客的第一篇。在这个系列中&#xff0c;我们将探讨如何在C#与C之间实现互操作性&#xff0c;并逐步深入理解其应用场景和技术实现。本文将介绍什么…

植物大战僵尸全新版本Q版少女助阵好感度系统加持安卓winmac全兼容

植物大战僵尸全新版本Q版少女助阵好感度系统加持安卓winmac全兼容 链接: https://pan.baidu.com/s/11UFm4r8FKhkGAxM8dLVA8Q?pwdqnx8 提取码: qnx8