当前位置: 首页 > news >正文

如何进行TCP抓包调试?

网络调试工具——Wireshark

Wireshark 是世界上应用最广泛的网络协议分析器,它让我们在微观层面上看到整个网络正在发生的事情。
Wireshark 本身是一个开源项目,所以也得到了很多志愿者的支持。同时,Wireshark 具有丰富的功能集,包括:
1.
深入检查数百个协议,并不断添加更多协议;
2.
实时捕获和离线分析;
3.
支持 Windows、Linux、macOS、Solaris、FreeBSD、NetBSD,以及许多其他平
台;
4.
提供 GUI 浏览,也可以通过 TTY;
5.
支持 VOIP;
6.
支持 Gzip;
7.
支持 IPSec。
8.
……
是不是觉得Wireshark非常强大?无论你从事哪种开发工作,它都可以帮到你,因此也是面试
经常考察的内容。
注:你可以到 Wireshark 的主页:https://www.wireshark.org/download.html下载Wireshark。
如果你是一个黑客、网络安全工程师,或者你的服务总是不稳定,就需要排查,那么你会如何hack 这些网络连接、网络接口以及分析网络接口的封包呢?

接口列表

Whireshark 可以帮你看到整个网络交通情况,也可以帮你深入了解每个封包。而且Whireshark 在 macOS、Linux、Windows 上的操作都是一致的,打开 Wireshark 会先看到如下图所示的一个选择网络接口的界面。
在这里插入图片描述
我们要做的第一件事情就是选择一个网络接口(Network Interface)。Linux 下可以使用ifconfig指令看到所有的网络接口,Windows 下则使用 ipconfig。可以看到,上图中有很多网络接口,目前我教学这台机器上,连接路由器的接口是以太网 2。另外可以看到,我的机器上还有VMware的虚拟网络接口(你的机器可能和我的机器显示的不一样)。

开启捕获功能

选择好接口之后,点击左上角的按钮就可以开启捕获,开启后看到的是一个个数据条目。因为整个网络的数据非常多,大量的应用都在使用网络,你会看到非常多数据条目,每个条目是一次数据的发送或者接收。如下图所示:
在这里插入图片描述
以下是具体捕获到的内容:
在这里插入图片描述

  • 序号(No.)是 Wireshark 分配的一个从捕获开始的编号。
  • 时间(Time)是从捕获开始过去的时间戳,具体可以在视图中设置,比如可以设置成中文的年月日等。这里有很多配置需要你自己摸索一下,我就不详细介绍了。
  • 源地址和目标地址(Source 和 Destination)是 IP 协议,注意这里有 IPv6 的地址,也有 IPV4 的地址。
  • 协议可能有很多种,比如 TCP/UDP/ICMP 等,ICMP 是 IP 协议之上搭建的一个消息控制协议(Internet Control Message Protocol),比如 Ping 用的就是 ICMP;还有ARP 协议(Address Resolution Protocol)用来在局域网广播自己的 MAC 地址。
  • Length 是消息的长度(Bytes)。
  • Info 是根据不同协议显示的数据,比如你可以看到在TCP 协议上看到Seq 和 ACK。这里的 Seq 和 ACK 已经简化过了,正常情况下是一个大随机数,Whireshark 帮你共同减去了一个初始值。

观察 TCP 协议

如果你具体选择一个 TCP 协议的捕获,可以看到如下图所示的内容:
在这里插入图片描述
然后在这下面可以观察到详情内容:
在这里插入图片描述
我们可以从不同的层面来看这次捕获。从传输层看是 TCP 段;从网络层来看是 IP 封包;从链路层来看是 Frame。
点开不同层面观察这个 TCP 段,就可以获得对它更具体的认识,例如下图是从 TCP 层面理解这次捕获:
在这里插入图片描述
你可以看到这次捕获是一次 ACK(见 Flags)字段,从端口 58260 发往 443,那么大概率是HTTPS 客户端给服务器的响应。

消息视图

如果你选中一条消息,下面会出现一个消息视图。还有一个二进制视图。二进制视图里面是数据的二进制形式,消息视图是对二进制形式的解读。
Whireshark 追溯的是最底层网卡传输的 Frame(帧),可以追溯到数据链路层。因此对二进制形式的解读,也就是我们的消息视图也要分层。因为对于同样的数据,不同层的解读是不同的。

  • 最上面是 Frame 数据,主要是关注数据的收发时间和大小。
  • 接着是数据链路层数据,关注的是设备间的传递。你可以在这里看到源 MAC 地址和目标MAC 地址。
  • 然后是网络层数据,IP 层数据。这里有 IP 地址(源 IP 地址和目标 IP 地址);也有头部的 Checksum(用来纠错的)。这里就不一一介绍了,你可以回到我的文章 路由和寻址的区别复习这块内容。
  • 最下面是传输层数据。 也就是 TCP 协议。关注的是源端口,目标端口,Seq、ACK 等。
  • 有的传输层上还有一个 TLS 协议,这是因为用 HTTPS 请求了数据。TLS 也是传输层。TLS 是建立在 TCP 之上,复用了 TCP 的逻辑。

观察 HTTP 协议

Wireshark 还可以用来观察其他的协议,比如说 HTTP 协议,下图是对 HTTP 协议的一次捕获:
在这里插入图片描述
可以看到,Wireshark 不仅仅捕获了应用层,还可以看到这次 HTTP 捕获对应的传输层、网络层和链路层数据。

过滤和筛选

Wireshark 还提供了捕获的过滤,我们只需要输入过滤条件,就可以只看符合条件的捕获。比如我们想分析一次到百度的握手。首先开启捕获,然后在浏览器输入百度的网址,最后通过ping指令看下百度的 IP 地址,如下图所示:
在这里插入图片描述
看到IP 地址之后,我们在 Wireshark 中输入表达式,如下图所示:
在这里插入图片描述
这样看到的就是和百度关联的所有连接。上图中刚好是一次从建立 TCP 连接(3 次握手),到HTTPS 协议传输握手的完整过程。你可以只看从192.168.1.5到14.215.177.39的请求。首先是从客户端(192.168.1.5)发出的 SYN 和百度返回的 SYN-ACK,如下图所示:
在这里插入图片描述
然后是客户端返回给百度一个 ACK:
在这里插入图片描述
接下来是 HTTPS 协议开始工作(开始握手):
在这里插入图片描述
可以看到 HTTPS 协议通过 TLSv1.2 发送了 Client Hello 到服务端。接下来是 Server 返回给客户端 ACK,然后再发送给客户端一个 Server Hello:
在这里插入图片描述
之后百度回传了证书:
在这里插入图片描述
最后开始交换密钥,直到 HTTPS 握手结束
在这里插入图片描述

报文颜色

在抓包过程中,黑色报文代表各类报文错误;红色代表出现异常;其他颜色代表正常传输。
在这里插入图片描述

总结

Wireshark 是个强大的工具,支持大量的协议。还有很多关于 Wireshark 的能力,希望你可以进一步探索,如下图中鼠标右键一次捕获,可以看到很多选项,都是可以深挖的。
在这里插入图片描述
如何进行 TCP 抓包?答案就是用工具,例如 Wireshark。

相关文章:

如何进行TCP抓包调试?

网络调试工具——Wireshark Wireshark 是世界上应用最广泛的网络协议分析器,它让我们在微观层面上看到整个网络正在发生的事情。 Wireshark 本身是一个开源项目,所以也得到了很多志愿者的支持。同时,Wireshark 具有丰富的功能集,…...

分享一个国内可用的ChatGPT网站,免费无限制,支持AI绘画 - AI 百晓生

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾🌋。 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C…...

API安全性的要素与开发人员必修课测试

一、API安全性的要素主要包括以下几点: 1.身份验证和访问控制:API应该通过身份验证来验证请求的源,确保只有授权的用户或应用程序才能访问API。这可以通过使用API密钥、访问令牌、OAuth令牌或其他身份验证机制实现。 2.数据加密:A…...

leetcode 651. 4键键盘

651. 4键键盘 中等 102 company 微软 Microsoft company 谷歌 Google company 亚马逊 假设你有一个特殊的键盘包含下面的按键: A:在屏幕上打印一个 ‘A’。Ctrl-A:选中整个屏幕。Ctrl-C:复制选中区域到缓冲区。Ctrl-V&#xff1a…...

Python垃圾回收机制

Python 运行过程中会不停的创建各种变量,而这些变量是需要存储在内存中的,随着程序的不断运行,变量数量越来越多,所占用的空间势必越来越大,如果对变量所占用的内存空间管理不当的话,那么肯定会出现 out of…...

Grafana插件安装并接入zabbix数据源(03)

一、在线安装插件 如果不指定插件安装位置,则默认安装位置为/var/lib/grafana/plugins;插件安装后需要重启grafana-server 安装zabbix插件alexanderzobnin-zabbix-app # grafana-cli plugins install alexanderzobnin-zabbix-app 使用--pluginsDir指定安装路径 # grafana…...

简述 JavaScript 中 prototype

简述 JavaScript 中 prototype 这篇笔记主要捋一下这么几个概念: JS 的继承构造函数new 的作用及简易实现__proto__ & prototype同样的方法,class 和 prototype 中分别是怎么实现的 基础概念 JS 是通过 prototype chaining 实现继承的语言&#…...

一觉醒来Chat gpt就被淘汰了

目录 什么是Auto GPT? 与其他语言生成模型相比,Auto GPT具有以下优点 Auto GPT的能力 Auto GPT的能力非常强大,它可以应用于各种文本生成场景,包括但不限于以下几个方面 Auto GPT的历史 马斯克说:“ChatGPT 好得吓…...

13款JavaScript图像处理库,建议收藏备用

pica: 一个在浏览器中调整图像大小,而不会出现像素失真,处理速度非常快的图片处理库,仓库地址https://github.com/nodeca/picahtml2canvas: 强大的使用js开发的浏览器网页截图工具,仓库地址https://github.…...

uniapp m3u8格式视频加载

uniapp一:mui-player:三方 h5 web app uniapp 使用 mui-player 插件播放 m3u8/flv 视频流_翘翘红的博客-CSDN博客 uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意&am…...

iOS描述文件(.mobileprovision)一键申请

iOS描述文件(.mobileprovision)一键申请 在主界面上点击描述文件按钮。 新建ios描述文件 然后点击新建,然后输入描述文件名称,描述文件名称字符和数字,自己好辨识就可以。然后选择描述文件类型,再选择bundle ID,如果…...

进行性能压力测试的原因、目的和好处

性能压力测试是指在模拟高负载、高并发情况下对软件系统进行测试,以衡量系统在实际使用过程中的性能表现。这些测试可以为生产环境中的应用程序提供关键数据,并帮助开发人员从根本上了解系统的实际性能。在本文中,我们将探讨进行性能压力测试…...

【计算机视觉】如何利用 CLIP 做简单的人脸任务?(含源代码)

文章目录 一、数据集介绍二、源代码 结果三、代码逐行解读 一、数据集介绍 CELEBA 数据集(CelebFaces Attributes Dataset)是一个大规模的人脸图像数据集,旨在用于训练和评估人脸相关的计算机视觉模型。该数据集由众多名人的脸部图像组成&a…...

基于显扬科技3D视觉相机的医疗试管分拣系统

行业现状: 医疗试管分拣是医疗行业中的一个重要环节,指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣,并对试管的类型、位置、数量等信息进行识别和管理。 随着医疗技术的不断发展和诊断治疗的精细化,医疗试管分拣…...

编译zlib

zlib被设计为一个免费的,通用的,法律上不受限制的-即不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使用。 官网:http://www.zlib.net/ 下载zlib源码:http://www.zlib.net/zlib1213.zip 备用地址&#x…...

如何让“ChatGPT自己写出好的Prompt的“脚本在这里

写个好的Prompt太费力了 在网上,你可能会看到很多人告诉你如何写Prompt,需要遵循各种规则,扮演不同的角色,任务明确、要求详细,还需要不断迭代优化。写一个出色的Prompt需要投入大量的时间和精力。甚至有一些公开的Pr…...

菜单选择shell

[rootes3 data]# vi action.sh #!/bin/bash . /etc/init.d/functionsecho -en "\E[$[RANDOM%731];1m"cat <<EOF请选择&#xff1a;1) 备份数据库2)清理日志3)软件升级4)软件回滚5)删库跑路EOFecho -en \E[0mread -p "请选择上面的项对应的数字1-5&#xf…...

Redis高可用性详解

目录 ​编辑 高可用性&#xff1a; 主从复制&#xff08;Master-Slave Replication&#xff09;&#xff1a; 主从复制的一般工作流程&#xff1a; 哨兵模式&#xff08;Sentinel Mode&#xff09;&#xff1a; 哨兵模式的一般工作流程&#xff1a; 集群模式&#xff08…...

MySQL(1) ---- 数据库介绍与MySQL概述

介绍 1、什么是数据库&#xff1f; 数据库&#xff1a;DateBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库。数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;&#xff0c;操纵和管理数据库的大型软件。SQL&#xff1…...

面试题之软件测试流程

说说公司的软件测试流程&#xff0c;这&#xff0c;是常考的面试题之一。 不同公司的流程不一样&#xff0c;现状决定流程&#xff0c;没有绝对的对错。 以结果为导向&#xff0c;保证产品质量&#xff0c;提高测试效率&#xff0c;才是王道。 以下的流程为业界比较标准的流程&…...

Visual Studio 项目属性页开发完全教程:从基础到高级

Visual Studio 项目属性页开发完全教程&#xff1a;从基础到高级 【免费下载链接】project-system The .NET Project System for Visual Studio 项目地址: https://gitcode.com/gh_mirrors/pr/project-system Visual Studio 项目属性页是开发者管理项目配置的核心界面&a…...

多自由度冗余空间机械臂位姿一体化规划与控制【附代码】

✨ 长期致力于空间机械臂、对偶四元数、位姿一体化、路径规划、跟踪控制研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;基于对偶四元数的冗余机械臂运…...

Unity安卓构建72小时实战指南:从零到真机运行

1. 这不是“又一本Unity教程”&#xff0c;而是我带三个新人从零上线第一款安卓游戏的真实路径你点开这个标题&#xff0c;大概率正站在两个路口之间&#xff1a;一边是满屏“30天速成Unity”“零基础做爆款”的短视频封面&#xff0c;一边是你刚下载完Unity Hub、卡在Android …...

Veo 2胶片质感生成器失效?——深度解析Color Science v2.3内核中被屏蔽的Cinematic Grain Injection层

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Veo 2胶片质感生成器失效现象全景透视 近期大量用户反馈&#xff0c;Veo 2 胶片质感生成器在调用 generate_film_effect() 接口后返回空纹理、纯灰帧或 HTTP 503 Service Unavailable 错误&#xff0c;且该问题…...

Postgresql基础实践教程(八)

⭐️⭐️⭐️⭐️⭐️ 完整数据详见 练习数据免费 ⭐️⭐️⭐️⭐️⭐️ 六十九、查找会员ID 27的向上推荐链 问题 查找会员ID 27的向上推荐链&#xff1a;即推荐该会员的人&#xff0c;以及推荐那个人的人&#xff0c;依此类推。返回会员ID、名字和姓氏。按会员ID降序排列。…...

flameshow性能优化技巧:如何快速定位Go程序中的CPU热点

flameshow性能优化技巧&#xff1a;如何快速定位Go程序中的CPU热点 【免费下载链接】flameshow A terminal Flamegraph viewer. 项目地址: https://gitcode.com/gh_mirrors/fl/flameshow &#x1f525; 想要快速定位Go程序中的性能瓶颈吗&#xff1f;flameshow是一个强大…...

MeloTTS实战:多语言语音合成的高效解决方案

MeloTTS实战&#xff1a;多语言语音合成的高效解决方案 【免费下载链接】MeloTTS High-quality multi-lingual text-to-speech library by MyShell.ai. Support English, Spanish, French, Chinese, Japanese and Korean. 项目地址: https://gitcode.com/GitHub_Trending/me/…...

Windows开机自动全屏打开指定网页?一个快捷方式参数就搞定(Chrome/Edge/Firefox教程)

Windows开机自动全屏展示网页的终极方案每次开机都要手动打开浏览器、输入网址、切换全屏模式&#xff1f;这种重复操作不仅浪费时间&#xff0c;还容易在重要演示时手忙脚乱。想象一下&#xff1a;电脑启动后自动全屏显示你的仪表盘、会议日程或是监控大屏&#xff0c;整个过程…...

别再盲调temperature=0.2!DeepSeek补全效果突变的4个隐藏参数,资深架构师压箱底调参清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;别再盲调temperature0.2&#xff01;DeepSeek补全效果突变的4个隐藏参数&#xff0c;资深架构师压箱底调参清单 DeepSeek-R1/VL 等开源大模型在实际部署中&#xff0c;仅靠调节 temperature 往往收效甚…...

Linux平台终极Jellyfin客户端:如何用Tsukimi打造专业级媒体中心体验?

Linux平台终极Jellyfin客户端&#xff1a;如何用Tsukimi打造专业级媒体中心体验&#xff1f; 【免费下载链接】tsukimi A simple third-party Jellyfin client for Linux 项目地址: https://gitcode.com/gh_mirrors/ts/tsukimi 你是否厌倦了网页版Jellyfin的笨重体验&am…...