在linux命令行环境下如何抓取网络数据包?

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

背景

  众所周知,在Windows下开发运行环境下,在调试网络环境时,可以可以很方便的借助wireshark等软件进行抓包分析;并且在linux或者Ubuntu等桌面版里也可以进行安装抓包工具进行抓包分析,但总有一些情况,无法直接运用工具(比如一些没有界面的linux环境系统中),则此时我们就需要使用到最简单的tcpdump命令进行网络抓包。

  一般的,linux下抓包时,抓取特定的网络数据包到当前文件夹下的文件中,再把文件拷贝出来利用Windows下的wireshark软件进行分析。

操作指令

tcpdump命令详解:(简单举例)

1:抓取所有经过eth0的网络数据包,当前eth0为10.0.10.125:
#tcpdump –i eth0 host 10.0.10.125

2:抓取所有源地址为eth0的网络数据包
#tcpdump –i eth0 src host 10.0.10.125

3:抓取所有目标地址为eth0的网络数据包
#tcpdump –i eth0 dst host 10.0.10.125

4:合起来,例如抓取设备eth0网络10.0.10.125到设备IP为10.0.10.126的数据包:
#tcpdump –i eth0 src host 10.0.10.125 and dst 10.0.10.126 -w filename.cap

注意事项

  1、抓取到的文件为filename.cap,然后将此文件拷贝到Windows下,使用wireshar打开后,即可对此文件进行分析。
  2、eth0 是主机的网络适配器名称,具体的参数值可以在linux命令行窗口中通过 ifconfig 指令查询。

你可能感兴趣的:(在linux命令行环境下如何抓取网络数据包?)