网络抓包调试实践

news/2024/12/26 20:12:36/文章来源:https://www.cnblogs.com/uncleguo/p/18626849

  网络抓包这个话题,有一定开发经验的多少都有所了解,常用软件Wireshark,Fiddler用起来也非常傻瓜,本文不会涉及。 一般的介绍网络抓包的文章,到能抓到数据包通常就结束了。但显然认识工具是一会儿事儿,理解本质,清楚实践中啥时候该用,是另外一会儿事儿。让新人小白自行举一反三,可能多少有些困难。

  近期正好参与了一些网络相关问题的排查, 在此从实践角度备忘下,网络抓包的本质意义,以及使用中的一些具体问题。

 

   一. 分歧终端机——抓包

  开发A: 我给你发了a,b和c

  开发B: 我没收到b ,你肯定漏了。

  开发A: 我肯定发了,我日志写了

  开发B: 你肯定没发,我的日志只有a,b

  ……发了!没发!发了!没发!我不管了!我也不管了!

  以上场景有些阅历的同志,应该都似曾相识。这种到底发了没发,收了没收的问题。打官司打到你那里,要如何断案呢? 

  如果双方都开源可见,人都在你治下,可以看看两边代码, 日志可能写的位置不正确,不是发送的最末端,或者接收的最前端,还可能可以解决。

 

  如果是你调用第三方黑盒,可能就不那么配合了。 

  你:发你们这个指令你们没反应啊

  第三方:你程序逻辑问题吧。

  你:真发了,我日志你看。

  第三方:你日志写的不对。

  你:我日志写的对,不信你看代码。

  第三方:看不懂,别人都没问题。你可能网络有问题……

  你:我网络没问题。

  第三方:设备可能信号不好吧, 你拿着它移动下。。。多移动下。

  

  此时就需要引入权威第三方,网络抓包工具。做web开发的同学可能并没非常清楚的意识到,浏览器的请求网络调试功能,就是一个简单易用的抓包工具,所以Web页面调试,只需要看浏览器的网络调试,究竟是发的有问题还是接收处理问题,一目了然,很少扯皮。

  对于非web开发的同学,就没有这么好的调试基础设施了。Wireshark之类的抓包工具,其实就是实现了操作系统层面的网络调试工具。

  抓包工具是调试双方的双向代理人, 究竟谁给谁发了啥,或者没发啥。它一清二楚,有最终解释权。 同时,抓包工具能够暴露更多的细节,TCP协议如今被广泛使用,对于发了,发不到,或者延时很大,能够观察到TCP协议层次的传输控制过程。

  总结来说,通过在两端之间放置抓包工具可以分析,全部的通信异常的情况:发没发出,发没发到,传输质量如何。

  对于前面说的类型的官司,可以让他们装个抓包工具自己看。涉及第三方的 ,出示下抓包日志,也会让对方不把你作为新手小白, 重视你反馈的问题。 

 

  二、网络链路问题排查实践

  现实中的问题通常比书本上复杂。 通信不会简单的发生于两个PC之间,只需要简单的各装一个抓包软件就能够使得通信过程一目了然。 

   你需要找出通信问题的设备其中一端,可能是一个封闭系统,甚至嵌入式设备。封闭的系统上无法安装常规的抓包软件。分为几种情况。

 

 1. 接入同一个集线器

 

集线器实际已经淡出历史舞台了,但是它可以让我们理解局域网抓包的原理及限制。

集线器不具备智能转发功能,会将一个端口(物理)接收到的数据,广播至所有连接的端口。收到的网卡会根据MAC地址,忽略不是发给自己的包。(能收到只是自觉忽略)

网卡混杂模式,设置为混杂模式,会使得网卡不再直接忽略与自己无关的数据包,所有流经数据包都能够被捕获。

因为,集线器不智能,所以抓包变得很简单。只要插到相同的集线器上,所有发给调试设备和调试设备发出的网络数据包,都能够抓包PC的网卡捕获,从而实现抓包分析。 

 

 2. 接入同一个交换机

交换机比集线器智能了一些,其中的一个特性就是,智能转发, 该发给那个口的包,就发给那个口。交换机不再无脑广播

导致了,按照交换机的接法,只简单连接,已经无法抓包了。因为待调试设备的数据包,并不会流经抓包pc接入的插口的网线,确实更安全了。

但因为有时候网络监控又是正义且合理的需求,于是交换机,多数具有一个类似于端口镜像或者端口监控的功能。

其作用是将被监控端口的流量,复制到监控端口, 使得监控端口的网卡,可以捕获数据包。

在交换机设置中,打开对应的功能,又可以抓包啦。注意端口指的是物理插口,不要与网络端口混淆。

 

 3.接入Wi-Fi  

 

通过Wi-Fi抓包又引入了一些不同,比较靠谱的方案是在上级交换机进行端口镜像,Wi-Fi路由器设置为AP模式,无线转有线,相对简单易于理解。

对于通过无线Wi-Fi进行抓包,我并没有做过实际测试,仅做原理性的讨论。

物理上 Wi-Fi路由器有支持多频的,2.4G与5G。 连接两个频段的设备,我理解应该是不能捕获对方数据包的。

有鉴权加密的Wifi 路由器,需要用户名密码的, 会在通信时叠加应用加密协议。可能可以抓包,但应该无法解密。知道用户名密码,理论上可以,要额外根据wifi加密协议进行解密。

 对于开放的Wi-Fi,无鉴权,不加密,对于连接在同频段,频道的设备,应该是可以捕获其他设备的数据包,正常的抓包。

~实际情况如何,望有实际经验的大神补充

 

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

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

相关文章

根据监控点或者视频的分辨率自适应调整播放画面的宽高比

3.根据监控点或者视频的分辨率自适应调整播放画面的宽高比 视频的分辨率宽高比和播放窗口的宽高比例不一定相同,播放时如果填充整个播放窗口,会出现播放画面横向或纵向拉伸以填充整个窗口,这样会导致播放画面变形或者不协调,影响观看效果;为了保持视频的按照原来的宽高比,…

软考通过申请加分

2024下半年中级软件设计师考试通过,20224089连赛轩申请加分10分

Forest框架 访问HTTPS协议

问题描述 第三方接口使用的是HTTPS协议,导致程序一直报错找不到协议请求超时 解决方案 Forest的单向验证的默认协议为TLS,将ssl-protocol属性修改为其它协议 forest:...ssl-protocol: SSL 使用HTTPS协议时,不能只用ip地址,必须使用域名 @Get(url = "https://bjdx.wdm…

一文彻底搞清楚ArkUI

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前!0.前言 在…

算法网关视频分析网关小知识:监控系统频繁掉线,如何排查网络问题?

在现代监控系统中,网络稳定性对于确保视频流的连续性和图像质量至关重要。然而,监控系统频繁掉线是一个常见的问题,它可能由多种因素引起,包括硬件故障、网络配置错误、供电不稳定等。为了有效排查和解决这些问题,以下是一些系统性的步骤,可以帮助我们定位并解决监控系统…

SQLMAP注入之MySQL注入总结

SQLMAP注入之MySQL注入总结 简介 sqlmap 是一个开源的自动化 SQL 注入(SQLi)攻击和数据库接管工具,广泛应用于渗透测试、漏洞评估和安全研究。它旨在帮助安全研究人员和渗透测试人员发现和利用 SQL 注入漏洞,进行数据库接管、信息泄露和数据提取等操作。 sqlmap 提供了强大…

【SpringCloud】5.Micromete——分布式链路追踪

必要性: 由客户端发起的请求会形成链路,任何一环出现问题,可能导致失败。我们需要快速的观测、定位和解决问题。概述 ZipKin Micromete+ZipKin搭建链路控制案例概述 为什么需要分布式链路技术 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点…

区块链技术学习笔记

密码学基础 哈希算法 哈希算法是指把任意输入值通过特定方式(hash 函数)处理后生成一个结果值。有时会发生输入值不同,但是处理后结果值相同的情况,这就叫哈希冲突。但一般来说,只要哈希函数设计得当,并且样本足够大,那么发生哈希冲突的概率可以忽略不计。因此,可以认为…

Web浏览器播放rtsp视频流详细解决方案

1、背景 在当前项目中,需要实现Web端直接播放RTSP视频流。该功能的核心目标是使得用户能够通过浏览器观看来自不同品牌的IPC(Internet Protocol Camera)设备的实时视频流。主要的IPC设备来自海康威视、大华科技以及宇视等厂商,这些设备普遍使用RTSP协议来传输视频数据。点播…

怎么写好年末报告——看板软件篇

通过明确报告目的、结构清晰、合理利用看板软件等工具和方法,可以撰写出一份既全面又具有深度的年末报告,并为团队的工作提供有力的支持和指导。年末报告怎么写 年末报告是总结过去一年工作成果、分析存在问题并提出未来规划的重要文档。以下是一份撰写年末报告的指南: 明确…

2024年项目管理软件排行榜:哪款最适合你?

在项目管理领域,选择合适的软件工具是确保项目成功的关键因素之一。随着技术的不断进步,市场上涌现出众多功能强大、易于使用的项目管理软件。本文将为您详细介绍2024年最受欢迎的项目管理软件,帮助您找到最适合您团队需求的工具。 禅道项目管理软件禅道项目管理软件是一款开…

学习高校课程-软件设计模式-状态、策略和模版模式(lec12)

State: Problem A finite number of states The program behaves differently within a state Can be switched from one state to another, and switching rules (transitions) are also finite and predetermined 有限数量的状态 程序在某个状态下的行为有所不同 可以从一种状…