Linux 抓包工具 tcpdump
一、简介
在网络问题的调试中,tcpdump 应该说是一个必不可少的工具,和大部分 linux 下优秀工具一样,它的特点就是简单而强大。
它是基于 Unix 系统的命令行式的数据包嗅探工具,可以抓取流动在网卡上的数据包。
默认情况下,tcpdump 不会抓取本机内部通讯的报文。
根据网络协议栈的规定,对于报文,即使是目的地是本机,也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入了内核,并且完成了路由选择。
如果要使用 tcpdump 抓取其他主机 MAC 地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给它或者是它发出的。一般而言,Unix 不会让普通用户设置混杂模式,因为这样可以看到别人的信息,比如telnet的用户名和密码,这样会引起一些安全上的问题,所以只有root用户可以开启混杂模式,开启混杂模式的命令是:
ifconfig en0 promisc // en0 是你要打开混杂模式的网卡。
二、命令
1、直接启动tcpdump,将抓取所有经过第一个网络接口上的数据包
tcpdump
2、抓取所有经过指定网络接口上的数据包
tcpdump -i eth0 //eth0指定网络接口
3、抓取所有经过 en0,目的或源地址是 10.37.63.255 的网络数据
tcpdump -i eth0 host 10.37.63.255
4、抓取主机10.37.63.255和主机10.37.63.61或10.37.63.95的通信
tcpdump -i eth0 host 10.37.63.255 and (10.37.63.61 or 10.37.63.95)
5、抓取主机192.168.13.210除了和主机10.37.63.61之外所有主机通信的数据包
tcpdump -i eth0 host 192.168.13.210 and ! 10.37.63.61
6、保存成文件
tcpdump -i eth0 host 10.37.63.255 -w dump.pcap
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论