在调试数据库驱动时,我们偶尔需要对数据的时序进行分析,这就需要使用 wireshark 进行抓包。同时,我们还要防止本地开发环境的复杂性影响测试结果,我们需要在更简单的服务器上运行测试。为了实现这些测试,我们就需要找到对服务端抓包的方法。

目前最主流的方案是使用 rpcapd 将服务端的抓包结果传输到本地,大部分文章对如何使用 rpcapd 抓包有较为详细的描述,本篇则不再重复,而是将重点放在其过时或错误的部分上——即 rpcapd 的安装。

在 github 上有 rpcapd 项目。根据其描述,libpcap 自 v1.9.0 开始自带 rpcapd,但是需要在 configure 过程中添加 --enable-remote参数。经测试,在 Ubuntu 22.04 源中自带的 libpcap-dev 和 libpcap0.8 都没有 rpcapd 命令,而 Ubuntu 18.04 源的 libpcap 版本则直接是 v1.8.0。很明显,我们在 Ubuntu 上需要自己编译 rpcapd。

编译 rpcapd 的步骤为:

  1. 克隆 libpcap 项目
  2. 执行autogen.sh脚本来生成 configure 脚本
  3. 运行 configure 脚本,./configure --enable-remote
  4. make

在 configure 过程中,可能会提示缺少依赖。根据需求安装对应依赖即可。

如果 make 的过程不出意外,那么 rpcapd 的可执行程序应该就放在 rpcapd 目录下了。我们只需要执行sudo rpcapd/rpcapd -4 -n就可以启动 rpcapd 服务了。默认监听的端口为 2002。

标签: none

仅有一条评论

  1. 真棒!

添加新评论