中国网管论坛's Archiver

iamshiyu 发表于 2008-1-25 12:26

tcpdump应用实例

tcpdump实在是linux下非常好用的一个抓包分析工具,据说其数据包分析文件还可以与ethreal通用,我没有用过,哪位用过不妨一起分享一下。
tcpdump在各个版本的linux中基本上被默认安装了,用法很简单,我只举几个例子,各位用过的补充一下吧,把自己觉得最好用的参数都推荐一下。
1)tcpdump -i eth0
这个命令监听所有流经eth0的数据包,如果你的网络环境很复杂,数据包很多的话,恐怕会刷屏刷到看不清楚,所以一般建议加过滤参数以便进一步分析。
2)tcpdump not port 22(或者tcpdump not port ssh)
因为我们平常往往使用ssh进行登录linux主机,如果使用tcpdump的话,它会把我们和主机之间的ssh信息全都反映出来,而每次信息的变化又会引起新的数据变化,所以干脆不看任何关于ssh连接的数据。
3)tcpdump not port 22 and port 80 or port 21 or host 192.168.1.1
注意and的意思是“并且”,or的意思是“或者”,因此当你用这些参数的时候,会在屏幕上显示所有非ssh的,并且是与主机192.168.1.1有关的或者访问端口涉及80或者21的数据包。注意与192.168.1.1关联的数据包中,只有ssh连接不会被显示出来,而非192.168.1.1这台主机关联的数据包,只显示与80端口或21端口有关的。如果你用了这样的方式:tcpdump not port 22 and port 80 and port 21 and host 192.168.1.1,则基本不会显示什么数据包,因为它要同时满足四个条件——不是ssh端口,连接的是80端口并且是21端口并且是与主机192.168.1.1有关,这样基本不可能存在符合条件的数据包。
4)tcpdump -i eth0 broadcast
捕捉流经设备eth0的广播包,也可以用ipx、arp之类的协议代替broadcast,使得针对性更强一些。当然如果tcpdump -i eth0 not broadcast就意味着监听除广播外的所有数据包了。
5)tcpdump -i eth0 broadcast -v
详细显示流经eth0上的广播包的内容,不过我想不研究一下恐怕看不明白。
大概的用法就是这样,是不是很方便呢?欢迎大家把自己觉得很常用的参数都列出来帮菜鸟们学习linux。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com