学习使用tcpdump

tcpdump这个工具可以说是久闻大名,以前只是偶尔试了一下,也没抓到自己想要的包,前两天由于程序出现问题,就需要抓包分析一下。我的程序是这样的,在同一台机器上部署了服务器server(假设端口为9877)和client,server和client采用TCP方式通信,我要确定client发出的数据是否被server收到。

于是,第一步上网搜了一下,直接使用命令tcpdump port 9877,任何数据包也没有抓到。后来才弄明白使用tcpdump需要制定要抓包的网络界面,否则会在默认的网络界面进行抓包,我的机器是默认在eth0上抓包的。于是使用-ilo指定回环网络界面抓包,尽管这里我用的是网络地址而不是127.0.0.1,但是还是要指定为回环网络界面。

成功抓到包之后还需要对包做一些分析,发现通信一次会收有三条交互信息,为什么不是两条呢,这就和TCP的三次握手有关了。具体分析可参见《tcpdump抓包分析TCP三次握手过程》,网上有这方面的文章。

原文地址:https://www.cnblogs.com/bo083/p/2315794.html