您的位置:首页 > 理论基础 > 计算机网络

tcpdump详细用法

2010-02-21 11:40 281 查看
常用参数简介:-i指定监听网卡,用于机器有多个网卡的情况-c指定要监听的数据包的数量-w将监听到的数据包存入文件中
I.定义类型的参数包括host,net,port,分别对应着主机,网络地址和端口
II.定义传输方向的参数包括src,dst,dst or src,dst and src
III.定义协议的参数包括fddi,ip,arp,tcp,udp等
IV.除以上之外还有gateway,broadcast,less,greater逻辑运算符:1)非 not ! 2)与 and && 3)或 or ||
1> #tcpdump 直接启动tcpdump默认监听第一块网卡上面流过的所有数据包2> #tcpdump host 222.222.222.222 获取该主机上面收到和发出的所有数据包3> #tcpdump host A and \(B or C\) 获取主机A和B或C的通信信息,注意括号4> #tcpdump ip host A and !B 获取A和除了B的所有ip包5> #tcpdump tcp port 23 host A 获取A发出或接受的所有telnet包6> #tcpdump udp port 123 监听udp123端口的ntp服务7> #tcpdump -i eth0 src host hostname 监听来自hostname的所有信息8> #tcpdump -i eth0 gateway gatewayname 监听通过网关的数据包9> #tcpdump -i eth0 host hostname and (src or dst)port 80 监听指定端口的信息
当网卡开启混杂模式时,系统日志里会有如下信息March 9 10:03:06 localhost kernel: eth0: Promiscuous mode enabled.
March 9 10:03:06 localhost kernel: device eth0 entered promiscuous mode
March 9 10:03:07 localhost kernel: device eth0 left promiscuous mode
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是
先使用带-w参数的tcpdump
截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

除了过滤语句,还有一个很重要的参数,也就是说,如果这个参数不设置正确,会导致包数据的丢失!它就是-s 参数,是数据包的截取长度,仔细看man就会明白的!默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失!

  只要使用-s 0就可以按包长,截取数据本文出自 “Get and Share” 博客,请务必保留此出处http://dgfpeak.blog.51cto.com/195468/277304
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: