开启生长之旅!这是我参加「日新方案 12 月更文应战」的第9天,点击查看活动详情


作者简介

架构师李肯(全网同名) ,一个专心于嵌入式IoT范畴的架构师。有着近10年的嵌入式一线开发经历,深耕IoT范畴多年,熟知IoT范畴的事务开展,深度把握IoT范畴的相关技能栈,包括但不限于干流RTOS内核的完成及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其完成、底层汇编及编译原理、编译优化及代码重构、干流IoT云渠道的对接、嵌入式IoT体系的架构规划等等。拥有多项IoT范畴的发明专利,热衷于技能共享,有多年编撰技能博客的经历积累,接连多月取得RT-Thread官方技能社区原创技能博文优秀奖,荣获CSDN博客专家、CSDN物联网范畴优质创作者、2021年度CSDN&RT-Thread技能社区之星、2022年RT-Thread全球技能大会讲师、RT-Thread官方嵌入式开源社区认证专家、RT-Thread 2021年度论坛之星TOP4、华为云云享专家(嵌入式物联网架构规划师)等荣誉。深信【常识改动命运,技能改动国际】!


【网络通讯开发系列】怎样抓取终端设备的TLS报文(一)

假设你的嵌入式终端设备呈现网络问题,你现在现在不承认是哪部分的问题,你想抓个网络报文来看看,你会怎样做呢?


作者:架构师李肯

一个专心于嵌入式IoT范畴的架构师。有着近10年的嵌入式一线开发经历,深耕IoT范畴多年,熟知IoT范畴的事务开展,深度把握IoT范畴的相关技能栈,包括但不限于干流RTOS内核的完成及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其完成、底层汇编及编译原理、编译优化及代码重构、干流IoT云渠道的对接、嵌入式IoT体系的架构规划等等。拥有多项IoT范畴的发明专利,热衷于技能共享,有多年编撰技能博客的经历积累,接连多月取得RT-Thread官方技能社区原创技能博文优秀奖,荣获CSDN博客专家、CSDN物联网范畴优质创作者、2021年度CSDN&RT-Thread技能社区之星、RT-Thread官方嵌入式开源社区认证专家、RT-Thread 2021年度论坛之星TOP4、华为云云享专家(嵌入式物联网架构规划师)等荣誉。深信【常识改动命运,技能改动国际】!


1 写在前面

在平常工作中的网络编程开发,少不了要通过抓取网络报文来剖析网络问题的使用场景。有的时分,你或许通过代码排查得焦头烂额,毫无头绪,可是只需一把网络报文拎出来一看,一会儿思路就翻开了。

可是,一个嵌入式设备要怎样才干抓取其网络设备呢?

假如咱们的这个嵌入式设备,跑的便是普通的 RTOS 体系,不像嵌入式Linux体系那样,还能够运用比方 tcpdump 这种命令行东西来抓取网络报文,他们或许连基本的DEBUG输入都不相同有,仅有一个输出LOG的串口。

那么,面临这种嵌入式设备,咱们能够怎样抓取其网络报文呢?

本文将为你揭晓答案,且文中描绘的办法也是笔者多年调试网络问题,一直在运用的办法,希望对咱们有所协助。

2 需求剖析

回到问题本身,其实需求还是比较明确的,便是需求抓取一个嵌入式设备的网络报文,且这个设备不具有命令行抓取的才能,只能运用外部设备辅助完成。

一起,这个嵌入式设备或许运用的是 以太网通讯、4G/5G等蜂窝网络通讯、Wi-Fi通讯,针对这样多样化的通讯方式,是否能找出一种比较通用的抓包方式,满足这几种通讯方式下的抓包需求,这是咱们所寻求的。

3 几个办法

本文先简略介绍下,面临这种嵌入式设备的网络抓包场景,或许运用到的几种办法,但本文将会重点介绍其中的一种,其他的几种,后面有空再另行整理。

  • 运用路由器、交互就镜像抓包
  • 运用PC无线热门捕获抓包
  • 运用网络署理(中转服务器)抓包
  • 运用特殊东西抓无线空口数据包

以上几种办法,各个各的优势,适用于不同的使用场景,灵活选用即可。

像我这边现在碰到的使用场景,都是一些基于 Wi-Fi 通讯的终端设备,所以对我而言,采用第二种 PC无线热门捕获 抓包,便是一个最佳挑选。

4 原理剖析

运用 PC无线热门捕获抓包 的这种方式,网络拓扑图如下所示:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

5 办法实践

5.1 东西准备

如上面描绘的抓包原理,你需求:

  • 一台具有网络才能的PC主机:假如设备需求连公网,这台主机还需求具有公网衔接的才能;
  • 一个迷你的无线网卡:最简略的就相似 360Wi-Fi 那种USB无线网卡;假如你准备的主机是一台笔记本的话,则能够不需求额外准备外置的无线网卡;
  • Windows下的Wireshark抓包东西:强大的网络报文抓取和剖析东西;
  • 若干终端设备:装备好终端设备,使其衔接由PC发射处理的无线热门。

5.2 详细步骤

1)第一步自然把相关的东西准备好,相关的软件装置好

装置wireshark能够参阅 教程,最重要的是,记得把 WinPcapUSBPcap 装置上:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

2)装备PC环境,把无线热门给发射出来

这儿假如是 笔记本自带了无线网卡的,能够参阅这个 教程 把无线热门搞起来。

假如是台式主机,需求外置无线网卡的,强力建议运用 360Wi-Fi,主要是廉价、快捷,使用这种抓包场景捉襟见肘。

别的,它还有一个配套的上位机东西,长这样,基本就能够一件傻瓜式地就能够把无线热门给发射出来;一起,在上位机这还能看到当时有哪些设备正连着这个无线热门,真的十分地方便。

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

3)装备终端设备衔接对应的无线热门

上面的步骤完成后,终端设备就能够衔接上对应的无线热门了,这个时分理论上,终端就现已借助PC的网络才能,它自己也具有了对外衔接网络的才能。

4)操作Wireshark抓包东西

翻开wireshakr软件,在首页会看到许多网卡设备,有无线的,也有有线的,这些有波浪线的表明当时有网络数据在活动:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

可是,你或许会发现这儿 并没有那个发射无线热门的网卡设备 (图中的WLAN是我笔记本的内置无线网卡)。

咱们能够查看下体系 网卡适配器:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

5)装备下无线网卡适配器【关键步骤】

这个时分咱们需求去装备一下无线网卡适配器,找到对应的无线网卡:

右键 -》属性,找到下面的这个选项,勾选上,最后承认:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

6)改写wireshark的网卡设备列表

wireshark的主界面,再菜单栏找到【捕获】-> 【改写接口列表】,这个时分下面就会把无线网络给显示出来了:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

7)发动wireshark抓包

双击对应的无线网卡设备,开端发动抓包,一起在终端发起一些网络交互,这时就能够看到wireshark中有网络报文刷出来了。示意图如下所示:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

8)wireshark的网络报文过滤

这个操作需求知道终端侧,在拜访哪个服务器,比方拜访百度网页,咱们需求先知道百度的IP是多少,然后使用wireshark的过滤规矩,直接把这部分网络报文给帅选出来。

比方我这儿查到的百度域名解析出来的IP地址是:14.215.177.224,那么我就能够这么过滤抓包,动态图如下:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

比方我要抓取TLS相关报文,我能够使用 端口号是443 这个特性来抓取报文:

【网络通讯开发系列】如何抓取终端设备的TLS报文(一)

一起,你的终端设备要拜访其他服务器,也是能够用相同的操作原理把它抓出来。

9)实战网络报文剖析

值得注意的是,咱们这儿抓取的报文或许是纯TCP的,也或许是TLS的,运用wireshark的报文剖析东西就能够剖析出来了。

详细能够参阅一些网络报文剖析教程,这儿不再赘述。

6 经历总结

  • 抓包办法许多,适合自己的才是最好的;
  • 不管哪种抓包办法,能拿到有效的网络报文便是王道,至少操作的快捷性,能用能知道;
  • wireshark剖析网络报文的才能很重要,几个重要的基础操作一定要十分娴熟;
  • 剖析网络报文需求具有厚实的网络基本功,必要的时分,好好补一补网络报文的核心常识。

7 参阅链接

  • Wireshark装置教程
  • Win10体系创建WiFi热门的两种办法
  • WireShark运用教程
  • Wireshark常用过滤运用办法
  • 360随身WiFi – 360WiFi官网

8 更多共享

欢迎重视我的github仓库01workstation,日常共享一些开发笔记和项目实战,欢迎纠正问题。

一起也十分欢迎重视我的CSDN主页和专栏:

【CSDN主页:架构师李肯】

【RT-Thread主页:架构师李肯】

【C/C++言语编程专栏】

【GCC专栏】

【信息安全专栏】

【RT-Thread开发笔记】

【freeRTOS开发笔记】

有问题的话,能够跟我讨论,知无不答,谢谢咱们。