go 语言写的抓包工具,支持MySQL、MongoDB、Redis、HTTP协议,直接用二进制跑起来就行,挺省事的。对做后端调试或者排查线上问题的你来说,还挺方便。嗯,像查个慢查询、看看 Redis 缓存有没有命中,用它抓一把数据就够了。
二进制可直接用,省掉了编译那一步,拖进终端跑就完事儿。抓到的包清晰直观,格式也比较友好,不会让你看得一头雾水。对于喜欢用Wireshark但又只关注应用层的朋友来说,这个工具轻便多了。
如果你平时用go-redis做数据缓存,或者折腾MongoDB的聚合管道,那这个工具可以让你看得更清楚底层到底在传啥,哪里卡了,一目了然。尤其是做中间件开发的,抓下来的数据拿来做协议也香。
顺带贴几个相关资源:想看看 USB 抓包的可以看USB Sniffer,用go-redis的可以翻下Redis 入门项目,还有Redis 集群操作示例也挺不错的。
抓 MySQL 协议的也不止它一个,像Atlas也可以了解下,各有优劣。如果你在搞数据,MongoEye这个 MongoDB 工具也挺好玩。
如果你想快速搞清楚某个求到底做了啥、跑得怎么样,可以把 go-sniffer 扔上去跑一遍。尤其是线上 debug 的时候,真的是省心多了。