• 2007-05-25

    tcpdump简单用法 - [LBE]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://gosman.blogbus.com/logs/5504841.html

    原文:simple usage of tcpdump
    作者:mysurface
    译者:gosman(lianmingchang2008#gmail.com)
    来自:http://gosman.blogbus.com
    版本:V 1.0.0
    时间:2007-5-25

    这是我今天从geek001知道的。tcpdump是非常强大的网络安全分析工具,可以将网络上截获的数据包保存到文件以备分析。可以定义过滤规则,只截获感兴趣的数据包,以减少输出文件大小和数据包分析时的装载和处理时间。

    这篇文章只涉及tcpdump的基本用法,请记住tcpdump比我描述的强大的多。

    针对网络接口、端口和协议的数据包截取。假定你要截取网络接口eth1,端口号6881的tcp数据包。数据文件保存为test.pcap。

    tcpdump -w test.pcap -i eth1 tcp port 6881

    很简单吧?如果要同时截取udp端口号33210和33220的数据包呢?

    tcpdump -w test.pcap -i eth1 tcp port 6881 or udp \( 33210 or 33220 \)

    '\'是转义字符,逻辑符号OR是加(+)的意思。其他表达式是截取端口号6881的tcp包加上端口号33210和33220的UDP包。tcpdump过滤表达式的and运算符是交集的意思,因此截取端口号33210和33220的UDP包使用 or 而不是 and。and运算符的用法在下文描述。

    怎样保存文件读取数据包呢?

    tcpdump -nnr test.pcap

    选项 -nn 不把网络IP和端口号转换成名字,r(read)读取包。

    可以添加 -tttt 选项使时间戳格式更加可读。

    tcpdump -ttttnnr test.pcap

    怎样针对IP截取数据?

    需向tcpdump指明IP类型,目的IP还是源IP?比如要嗅探的目的IP为10.168.28.22,tcp端口号22。

    tcpdump -w test.pcap dst 10.168.28.22 and tcp port 22

    目的IP和端口的交集(intersection),使用and运算符。

    嗅探数据包大小缺省为96 bytes,可以指定 -s 改变缺省值。

    tcpdump -w test.pcap -s 1550 dst 10.168.28.22 and tcp port 22

    有些版本的tcpdump允许指定端口范围,下述指令为针对一定端口范围截取数据。

    tcpdump tcp portrange 20-24

    注意,上述指令没有指定 -w 把截取的数据包保存到文件而是直接输出到屏幕。

    不知道端口号使用tcpdump

    互联网的数据流量太大,可以使用lsof搜索指定端口。lsof的例子可以参考 Monitor who runs what, listen to what ports, established what connections


    收藏到:Del.icio.us