tcpdump性能,tcpdump cap文件
http://www.tcpdump.org/pcap.htm
http://blog..net/force_eagle/article/details/6681802
tcpdump的简明用法
用法:tcpdump[-adeflnNOpqRStuvxX][-C count][-C file _ size]/Files/diyun Peng/SOC _ po . txt
[ -F文件] [ -i接口] [ -r文件] [ -s snaplen ]
[ -T类型] [ -U用户] [ -w文件] [ -E算法:秘密] [表达式]
-c捕获指定数量的消息-F使用文件作为过滤器表达式的源-i使用可选的网络接口捕获消息-p不在哈希模式下捕获,-r读取捕获的文件而不是网络接口-w将原始消息保存到文件中。
Tcpdump是一款非常强大的网络安全分析工具,可以将网络上截获的数据包保存到文件中进行分析。您可以定义过滤规则,只拦截感兴趣的数据包,以减少输出文件大小和数据包分析的加载和处理时间。
本文只讨论tcpdump的基本用法。请记住,tcpdump比我描述的要强大得多。
网络接口、端口和协议的数据包拦截。假设您想要拦截网络接口eth1的tcp数据包,端口号为6881。将数据另存为test.pcap.
tcpdump -w test.pcap -i eth1 tcp端口6881
很简单吧?想同时拦截udp端口号为33210和33220的数据包怎么办?
tcpdump -w test.pcap -i eth1 tcp端口6881或udp ( 33210或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。
tcp dump-w test . pcap dst 10 . 168 . 28 . 22和TCP端口22
IP和端口的交集使用and运算符。
默认情况下,嗅探数据包的大小为96字节。您可以指定-s来更改默认值。
tcpdump-w test . pcap-s 1550 dst 10 . 168 . 28 . 22和tcp端口22
某些版本的tcpdump允许您指定端口范围。以下指令用于截取特定端口范围的数据。
tcpdump tcp端口范围20-24
注意,上面的指令没有指定-w将截取的数据包保存到文件中,而是直接输出到屏幕上。
如果不知道端口号,请使用tcpdump。
互联网数据流量过大,可以使用lsof搜索指定端口。lsof的例子可以指监控谁运行什么,监听什么端口,建立了什么连接。
二。tcpdump的详细用法
第一个关键字是关于类型的,主要包括主机、网络和端口,比如主机210.27.48.2表示210.27.48.2是主机,网络202.0.0.0表示202.0.0是网络地址,端口23表示端口号是23。如果未指定类型,则默认类型为host。
二是确定传播方向的关键字,主要包括src、dst、dst或src、dst、src,表示传播方向。例如,SRC 210.27.48.2表示ip数据包的源地址是210.27.48.2,DSTNET 202.0.0.0表示目的网络地址是202.0.0。如果未指明方向关键字,则默认为src或dst关键字。
三是协议的关键词,主要包括fddi、ip、arp、rarp、tcp、udp等类型。Fddi表示在FDDI(分布式光纤数据接口网络?其实是‘以太’的别名。fddi和ether具有相似的源地址和目的地址,因此fddi协议数据包可以作为ether数据包来处理和分析。其他关键字是受监控数据包的协议内容。如果没有指定协议,tcpdump将监听所有协议的数据包。
除了这三类关键字,其他重要的关键字如下:gateway,broadcast,less,greater,还有三个逻辑运算,否定运算是‘not’!and运算是‘AND’,‘OR运算是‘OR’,‘’;这些关键词可以组合起来,形成强大的组合条件,满足人们的需求。这里举几个例子来说明。
正常情况下,直接启动tcpdump会监控所有流经第一个网络接口的数据包。
# tcpdump
tcpdump:侦听fxp0
11:58:47.873028 202 . 102 . 245 . 40 . NetBIOS-ns 202 . 102 . 245 . 127 . NetBIOS-ns:UDP 50
11:58:47.974331 0:10:7b:8:3a:56 1:80:C2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e 80 0000 902 b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85广播sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d 85 4008 0002
0640 4d 41 5354 4552 5f 57 4542 0000 0000
0000 00
使用-i参数指定tcpdump侦听的网络接口,这在计算机有多个网络接口时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监控的数据包写入文件并保存。
a想要拦截210.27.48.1中所有主机收发的所有数据包:
#tcpdump主机210.27.48.1
b .要拦截主机210.27.48.1与主机210.27.48.2或210.27.48.3之间的通信,请使用以下命令:(当命令行中使用括号时,请确保
#tcpdump主机210.27.48.1和(210.27.48.2或210.27.48.3)
c .如果您想获得除210.27.48.2之外的所有210.27.48.1主机的ip数据包,请使用以下命令:
#tcpdump ip主机210.27.48.1和!210.27.48.2
d .如果您想让主机210.27.48.1接收或发送telnet数据包,请使用以下命令:
#tcpdump tcp端口23主机210.27.48.1
监控这台机器的udp 123端口。123是ntp的服务端口。
# tcpdump udp端口123
f .系统将仅监控名为hostname的主机的通信数据包。主机名可以是本地主机或网络上的任何计算机。以下命令可以读取主机主机名发送的所有数据:
#tcpdump -i eth0 src主机主机名
以下命令g可以监控发送到主机主机名的所有数据包:
#tcpdump -i eth0 dst主机主机名
h我们还可以监控通过指定网关的数据包:
#tcpdump -i eth0网关网关名称
I .如果您仍想监控发往指定端口的TCP或UDP数据包,请执行以下命令:
#tcpdump -i eth0主机主机名和端口80
如果J想要获取ip数据包,则主机210.27.48.1会与除主机210.27.48.2之外的所有主机通信
,使用命令:
#tcpdump ip主机210.27.48.1和!210.27.48.2
k要拦截主机210.27.48.1与主机210.27.48.2或210.27.48.3之间的通信,请使用命令。
:(在命令行中应用括号时,请确保
#tcpdump主机210.27.48.1和(210.27.48.2或210.27.48.3)
l如果您想获取主机210.27.48.1中除主机210.27.48.2之外的所有主机的ip数据包,请使用以下命令:
#tcpdump ip主机210.27.48.1和!210.27.48.2
m如果您想让主机210.27.48.1接收或发送telnet数据包,请使用以下命令:
#tcpdump tcp端口23主机210.27.48.1
三是协议的关键词,主要包括fddi、ip、arp、rarp、tcp、udp等类型。
除了这三类关键词,其他重要关键词如下:网关,广播,少,
更大的,有三个逻辑运算,求反运算是‘非’!”,and运算是‘and’,‘or运算是‘o’
r , ;
二是确定传输方向的关键字,主要包括src,dst,dst或src,dst和src,
如果我们只需要列出发送到端口80的数据包,使用dstport如果我们只想看到返回端口80的数据包,请使用src端口。
# tcpdumpI eth 0主机主机名和dstport 80目标端口是80
或者
# tcpdumpI eth 0主机主机名和srcport 80源端口是80,一般是提供http服务的主机。
如果有许多条件,在它们前面加上and或or或not。
#tcpdump -i eth0主机!211.161.223.70和!211.161.223.71和dst端口80
如果在以太网中使用混杂模式系统,将记录日志。
5月7日20:03:46 localhost内核:eth0:混杂模式已启用。
5月7日20:03:46 localhost内核:设备eth0进入混杂模式
5月7日20:03:57 localhost内核:设备eth0离开混杂模式
Tcpdump并没有完全解码截获的数据,数据包中的大部分内容都是直接以十六进制格式打印出来的。显然,这不利于分析网络故障。通常的解决方法是使用带-w参数的tcpdump截取数据并保存在文件中,然后使用其他程序进行解码和分析。当然,还应该定义过滤规则,以防止捕获的数据包填满整个硬盘。
除了filter语句,还有一个很重要的参数,也就是说,如果这个参数设置不正确,会导致数据包数据丢失!
它是-s参数snaplen,是数据包的截取长度。仔细看看人你就明白了!默认截取长度为60字节,但一般以太网MTU为1500字节。所以,当你要抓取大于60字节的数据包时,使用默认参数会导致数据包数据丢失!
只要用-s 0,就可以根据包长拦截数据!