惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
O
OpenAI News
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
罗磊的独立博客
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
雷峰网
雷峰网
V
Visual Studio Blog
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
博客园 - 【当耐特】
G
Google Developers Blog
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
Martin Fowler
Martin Fowler
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
AI
AI
Google Online Security Blog
Google Online Security Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
Webroot Blog
Webroot Blog
PCI Perspectives
PCI Perspectives
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org

董泽润的技术笔记

美图 kv 存储 titan | 董泽润的技术笔记 聊聊并发库 conc | 董泽润的技术笔记 浅析 redis lua 实现 | 董泽润的技术笔记 IO Pipeline 读 Minio 源码 聊聊最近基于 S3 的项目 | 董泽润的技术笔记 新手如何调试 MySQL | 董泽润的技术笔记 为什么泛型使你的程序变慢 | 董泽润的技术笔记 每个 gopher 都需要了解的 Go AST 小技巧!Mac 环境下编译 Go 服务 | 董泽润的技术笔记 小技巧!k8s 环境下调试服务 | 董泽润的技术笔记 小技巧!如何用 systemtap 排查问题 | 董泽润的技术笔记 小白的 redis 1 安全漏洞 | 董泽润的技术笔记 聊聊时钟源为什么会影响性能 | 董泽润的技术笔记 聊聊为什么 IDL 只能扩展字段而非修改 | 董泽润的技术笔记 什么是 Pause 容器 | 董泽润的技术笔记 弱智的 MySQL NULL | 董泽润的技术笔记 分享一个 UT failed 引出的思考 | 董泽润的技术笔记 聊聊如何做技术分享 | 董泽润的技术笔记 聊聊 Go 并发安全 | 董泽润的技术笔记
小技巧!Wireshark 让调试 GRPC 不再困难 | 董泽润的技术笔记
2022-04-06 · via 董泽润的技术笔记

以前用 wireshark 分析过 GRPC 流量,非常方便,年初用同样方法分析了HOL blocking 问题,感兴趣的可以看看。今天记录下全过程,分享给大家,贼好用^^

1
ssh root@some.host 'tcpdump -i eth0 port 80 -s 0 -l -w -' | wireshark -k -i -

还有一种骚操作是 ssh 实时用 wireshark 解析,好处是不占用磁盘空间,但不是所有人都有权限

以前用 wireshark 分析过 GRPC 流量,非常方便。今天记录下全过程,分享给大家,贼好用^^

tcpdump

1
tcpdump -i eth0 -w tcpdump.log

上面是直接 dump 整个网卡的流量,如果太大的话,可以只 dump 固定 ip 或端口的

我们线上有脚本,可以整天 dump 数据,然后按文件大小进行切割。大家可以自己写,还蛮方便的

配置 wireshark

因为 GRPC 是在 http2 之上运行的,协议是 protobuf, 所以需要加载 pb 文件,否则 wireshark 无法识别自定义内容

另外,如果走了 tls 加密,还需要在 wireshark 上加载 rsa key 解密流量

打开 Wireshark->Preference->Protocols->Protobuf

然后打开 Edit, 输入本次测试用的 proto 文件

proto 文件可能引用其它 pb 文件,所以也需要填写搜索路径,然后确定 这就配置完成

解析 GRPC

打开 tcpdump.log 数据文件以后,打开 Wireshark->Analyze->Decode As

如上所示,因为我要解析 10177 http2, 添加后确定

这时会发现,己经能看到 http2 包数据了。如果你的数据是加密的,记得配置 tls

过滤

Wireshark 非常强大,可以根据 http2 header 来过滤,由可以跟据 body 来过滤,很方便

如上图,可以看到解析出了业务 endpoints, header 以由 request 内容。撒花 ~~

小结

写文章不容易,如果对大家有所帮助和启发,请大家帮忙点击在看点赞分享 三连

关于 调试 GRPC 大家有什么看法,欢迎留言一起讨论,大牛多留言 ^_^