tcpdump
抓包并保存成
cap
文件
首选介绍一下
tcpdump
的常用参数
tcpdump
采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c
数量
] [ -F
文件名
]
[ -i
网络接口
] [ -r
文件名
] [ -s snaplen ]
[ -T
类型
] [ -w
文件名
] [
表达式
]
1. tcpdump
的选项介绍
-a
将网络地址和广播地址转变成名字;
-d
将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd
将匹配信息包的代码以
c
语言程序段的格式给出;
-ddd
将匹配信息包的代码以十进制的形式给出;
-e
在输出行打印出数据链路层的头部信息;
-f
将外部的
Internet
地址以数字的形式打印出来;
-l
使标准输出变为缓冲行形式;
-n
不把网络地址转换成名字;
-t
在输出的每一行不打印时间戳;
-v
输出一个稍微详细的信息,
例如在
ip
包中可以包括
ttl
和服务
类型的信息;
-vv
输出详细的报文信息;
-c
在收到指定的包的数目后,
tcpdump
就会停止;
-F
从指定的文件中读取表达式
,
忽略其它的表达式;
-i
指定监听的网络接口;
-r
从指定的文件中读取包
(
这些包一般通过
-w
选项产生
)
;
-w
直接将包写入文件中,并不分析和打印出来;
-T
将监听到的包直接解释为指定的类型的报文,常见的类型有
rpc
(远程过程
调用)和
snmp
(简单网络管理协议;)
当网络出现故障时,
由于直接用
tcpdump
抓包分析有点困难,
而且当网络中数据
比较多时更不容易分析,
使用
tcpdump
的
-w
参数
+ethereal
分析会很好的解决这
个问题,具体参数如下:
tcpdump -i eth1 -c 2000 -w eth1.cap
-i eth1
只抓
eth1
口的数据
-c 2000
代表数据包的个数,也就是只抓
2000
个数据包
-w eth1.cap
保存成
cap
文件,方便用
ethereal
分析
抓完数据包后
ftp
到你的
FTP
服务器,
put
一下,然后用
ethereal
软件打开就
可以很直观的分析了
注:有时将
.cap
文件上传到
FTP
服务器后,发现用
ethreal
打开时提示数据包
大于
65535
个,
这是你在
ftp
上传或者下载的时候没有用
bin
的模式上传的原因。
另:有的网站提示在
tcpdump
中用
-s
0
命令,例如
tcpdump
-i
eth1
-c
2000
-s0
-w eth1.cap
,可实际运行该命令时系统却提示无效的参数
,
去掉
-s 0
参数即可
例子:
[root@localhost cdr]#tcpdump -i eth0 -t tcp -s 60000 -w diaoxian.cap
[root@localhost cdr]# tcpdump host 58.240.72.195 -s 60000 -w x.cap