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

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 的环境中特别有用。虽然这两种工具由于功能强大且复杂而具有陡峭的学习曲线,但它们共同构成了网络管理员、安全专业人员和开发人员不可或缺的工具包。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux杂货铺】3.程序地址空间

1.程序地址空间的引入 fork(&#xff09;函数在调用的时候子如果是子进程则返回0&#xff0c;如果是父进程则返回子进程的pid&#xff0c;在代码中我们分别在子进程和父进程读取全局变量g_val的时候居然出现了俩个不同的值。如下&#xff1a; #include<stdio.h> #includ…

t-SNE降维可视化并生成excel文件使用其他画图软件美化

t-sne t-SNE&#xff08;t-分布随机邻域嵌入&#xff0c;t-distributed Stochastic Neighbor Embedding&#xff09;是由 Laurens van der Maaten 和 Geoffrey Hinton 于 2008 年提出的一种非线性降维技术。它特别适合用于高维数据的可视化。t-SNE 的主要目标是将高维数据映射…

FastGPT+OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…

QTabWidget、QListWidget、QStackedWidget

The QTabWidget class provides a stack of tabbed widgets. More... The QListWidget class provides an item-based list widget. More... QStringList strlist;strlist<<"系统"<<"外观"<<"截图"<<"贴图"…

宝塔5.9 老版本 登录不进去 密码忘记 验证码不显示笔记

reboot似乎是能重置验证码不显示的唯一方式了 改密码的话在 python tools.py panel 123 我把一段注释了 记录一下 以防以后bug

Matlab-Simulink模型保存为图片的方法

有好多种办法将模型保存为图片&#xff0c;这里直接说经常用的 而且贴到Word文档中清晰、操作简单。 simulink自带有截图功能&#xff0c;这两种方法都可以保存模型图片。选择后直接就复制到截切板上了。直接去文档中粘贴就完事了。 这两个格式效果不太一样&#xff0c;第一种清…

Kafka基础入门篇(深度好文)

Kafka简介 Kafka 是一个高吞吐量的分布式的基于发布/订阅模式的消息队列&#xff08;Message Queue&#xff09;&#xff0c;主要应用与大数据实时处理领域。 1. 以时间复杂度为O(1)的方式提供消息持久化能力。 2. 高吞吐率。&#xff08;Kafka 的吞吐量是MySQL 吞吐量的30…

Java的高级特性

类的继承 继承是从已有的类中派生出新的类&#xff0c;新的类能拥有已有类的属性和行为&#xff0c;并且可以拓展新的属性和行为 public class 子类 extends 父类{子类类体 } 优点 代码的复用 提高编码效率 易于维护 使类与类产生关联&#xff0c;是多态的前提 缺点 类缺乏独…

【HTML入门】第十二课 - iframe框架

在早期没有出现Vue和React之前呢&#xff0c;做管理系统&#xff0c;iframe是非常普遍的技术。比如管理系统左侧有非常多的菜单&#xff0c;然后点击菜单后&#xff0c;右边就要展现不同的页面。 又或者呢&#xff0c;我们看一些网站&#xff0c;他们侧边展示着五彩绚烂的广告&…

C++:哈希表

哈希表概念 哈希表可以简单理解为&#xff1a;把数据转化为数组的下标&#xff0c;然后用数组的下标对应的值来表示这个数据。如果我们想要搜索这个数据&#xff0c;直接计算出这个数据的下标&#xff0c;然后就可以直接访问数组对应的位置&#xff0c;所以可以用O(1)的复杂度…

Dataset for Stable Diffusion

1.Dataset for Stable Diffusion 笔记来源&#xff1a; 1.Flickr8k数据集处理 2.处理Flickr8k数据集 3.Github&#xff1a;pytorch-stable-diffusion 4.Flickr 8k Dataset 5.dataset_flickr8k.json 6.About Train, Validation and Test Sets in Machine Learning Tarang Shah …

提升机器视觉与机器学习软件安全性的实践策略

在近几年科技爆发中&#xff0c;机器学习&#xff08;ML&#xff09;和机器视觉&#xff08;MV&#xff09;的结合正在改变各行各业。机器学习通过数据驱动的算法让计算机能够自我学习&#xff0c;而机器视觉赋予计算机识别和理解图像的能力。这种结合使得计算机可以高效地执行…

fastadmin后台无法删除文件,如何解决?

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

牛客小白月赛98 (个人题解)(补全)

前言&#xff1a; 昨天晚上自己一个人打的小白月赛&#xff08;因为准备数学期末已经写烦了&#xff09;&#xff0c;题目难度感觉越来越简单了&#xff08;不在像以前一样根本写不了一点&#xff0c;现在看题解已经能看懂一点了&#xff09;&#xff0c;能感受到自己在不断进步…

智算网络谜题,与“解密者”新华三

根据高盛研究公司&#xff08;GSR&#xff09;数据报告显示&#xff0c;AIGC将推动全球国民生产总值&#xff08;GDP&#xff09;增长7%&#xff0c;带来近7万亿美元的GDP增长&#xff0c;并在未来使生产力提高1.5%。面对如此巨大的价值涌现&#xff0c;每个行业、每家企业都希…

JAVASE进阶day07(泛型,集合,Set,TreeSet,枚举,数据结构)

泛型 1.泛型的基本使用 限制集合存储的数据类型 package com.lu.day07.generics;/*** 定义了一个泛型类* E 泛型通配字母(不固定代替真实数据类型A-Z都可以)* 常见的泛型通配字母:* E:element 元素* T:type 类型* R:return 返回值类型* K:key 键* …

CV09_深度学习模块之间的缝合教学(4)--调参

深度学习就像炼丹。炉子就是模型&#xff0c;火候就是那些参数&#xff0c;材料就是数据集。 1.1 参数有哪些 调参调参&#xff0c;参数到底是哪些参数&#xff1f; 1.网络相关的参数&#xff1a;&#xff08;1&#xff09;神经网络网络层 &#xff08;2&#xff09;隐藏层…

SvANet:微小医学目标分割网络,增强早期疾病检测

SvANet&#xff1a;微小医学目标分割网络&#xff0c;增强早期疾病检测 提出背景前人工作医学对象分割微小医学对象分割注意力机制 SvANet 结构图SvANet 解法拆解解法逻辑链 论文&#xff1a;SvANet: A Scale-variant Attention-based Network for Small Medical Object Segmen…

PHP7.4安装使用rabbitMQ教程(windows)

&#xff08;1&#xff09;&#xff0c;安装rabbitMQ客户端erlang语言 一&#xff0c;erlang语言安装 下载地址1—— 下载地址2——https://www.erlang.org/patches/otp-27.0 二&#xff0c;rabbitMQ客户端安装 https://www.rabbitmq.com/docs/install-windows &#xff08…

Python+wxauto=微信自动化?

Pythonwxauto微信自动化&#xff1f; 一、wxauto库简介 1.什么是wxauto库 wxauto是一个基于UIAutomation的开源Python微信自动化库。它旨在帮助用户通过编写Python脚本&#xff0c;轻松实现对微信客户端的自动化操作&#xff0c;从而提升效率并满足个性化需求。这一工具的出现&…