tcpdump是linux系统下强大的数据包分析工具,通过将网卡设置为混杂模式来截取经过网口的每一个分组进行分析,(作用类似windows平台下wireshark等抓包工具) www.tcpdump.org dsniff一款非常流行的网络嗅探器软件包“www.monkey.org/~dugsong/dsniff”

功能:判断数据是否经过设备,内网是否有arp欺骗,分析数据走向,分析tcp建立状态,分析端口映射数据走向及分析应用层协议等内容 格式 tcpdump + 参数 + 表达式 tcpdump (-adeflnNOpqStvx) [-c 数量][-F 文件名][-i 网络接口][-r 文件名][-s naplen][-T 类型][-w 文件名][表达式] -i 指定监听的网络接口 -e 在输出行打印出数据链路层的头部信息 -c 截取指定数目的数据包 -n 不把网络地址转换成名字(不做dns域名解析) -nn 不把端口和网络地址转换成名称(端口以数字显示) -x 将截取的数据包内容以十六进制打印出来 -X 将截取的数据包内容以ASCII文本形式打印出来 -s 截取指定大小的数据包,s0表示完整数据包 -W 将抓包内容保存到指定的文件并不打印出来 -a 将网络地址和广播地址转变成名字 -t 在输出的每一行不打印时间戳 -v 输出一个稍微详细的信息 -vv 输出详细的报文信息 -F 从指定的文件中读取表达式,忽略其他的表达式 -r 从指定的文件中读取包(这些包一般通过-w选项产生)

tcpdump -i eth2 dst 10.1.1.1 抓取去往目的主机为10.1.1.1的数据包(对应src) tcpdump -i eth2 arp -nn (ip、tcp、udp、icmp、802.1Q等)缺省监听所有协议 tcpdump -i eth2 host 1.1.1.1 and icmp nn 抓取网卡eth2上去往目标地址为1.1.1.1的数据包(not !非运算)(and &&与运算)(or || 或运算) 抓取特殊报文 tcpdump -i eth0 ether[42:4]=0xc0a864c7 or ether[46:4]=0xc0a864c7