Tuesday, May 08, 2007

PCBSD Tips之TCPDUMP

TCPDUMP 是BSD以及其他UNIX上的一个功能强大的抓包工具。 和SNIFFER或者Etheral比起来,它的功能并不逊色,只是界面远不如前两者那么友好。但他的优点在于无处不在:shipped with Operating System。

在使用TCPDUMP时需要root权限,另外一点就是需要Kernel中启用的bpf(默认已经启用)。

开始抓包之前,请先使用ifconfig -a 确认机器的网络接口,比如ed0,rl0 等等。

tcpdump -i ed0

开始在ed0接口上进行抓包。-i 用于指定网络接口。期间按下Ctrl+t可以查看抓获的数据包的数量,Ctrl+c停止。

tcpdump -w dumpfilename -i ed0,将输出重定向到dumpfilename文件中。

上面得到的文件是不能使用普通的编辑器察看的,只有tcpdump自己或者其它类似的抓包工具可以查看。

tcpdump -r dumpfilename | more,此命令查看捕获的数据包文件

如果只想抓某一类型的包,可使用:

tcpdump -i ed0 broadcast
tcpdump -i ed0 ARP
tcpdump -i ed0 ICMP

捕捉某两台特定的主机之间的数据:

tcpdump -i ed0 host SRV1 and SRV2
tcpdump -i ed0 src host SRV1 and dst host SRV2

tcpdump -i ed0 udp port 25

tcpdump本身对带有很多关键字,比如 ‘and’,‘or’,‘not’等等,使用这些Key words可以构建很多自定义的抓包过滤器,比如

tcpdump -i ed0 net 192.168.1.0 and not arp

(文章出自BSD Hacks by Dru Lavigine)

No comments: