TCPdump抓包及分析方法1
- 格式:doc
- 大小:3.72 MB
- 文档页数:10
tcpdump用法tcpdump是一个功能强大的网络分析工具,能够捕获网络上的数据包,用于网络故障排除、网络性能监控以及网络安全审计等目的。
它支持多种网络协议,支持文本输出和二进制输出。
本文将介绍tcpdump的使用方法,以及它的参数详解。
#### 一、基本用法tcpdump的基本用法非常简单:```tcpdump [options]```它默认以单个模式运行,在一次持续抓包过程中,一直以标准输出格式显示网络数据包,每条信息显示一个数据包信息,直到用户中断或者网络停止发包为止。
#### 二、抓包参数tcpdump参数繁多,但常用参数主要有以下几类:**1.滤参数*** -net据子网抓包,支持IPv4和IPv6,比如`-net192.168.1.0/24`* -host据网络主机抓包,支持IPv4和IPv6,比如`-host 192.168.1.1`* -port据端口号抓包,比如`-port 80`**2.示参数*** -X示数据包的十六进制与ASCII文本,通常用于检测网络攻击和病毒* -v示更详细的抓取信息,比如IP地址、端口号等* -vv示更详细的抓取信息,同时把协议中的详细信息也显示出来**3.能参数*** -r 以二进制文件的方式读取已保存的抓包数据,一般用于进行离线分析* -w 以二进制文件的方式将抓取的数据保存下来,方便以后分析* -c定抓包的数量,比如`-c 1000`表示只抓前1000条数据包 #### 三、高级用法tcpdump还支持一些高级参数,用于更加精确的抓包,主要有:**1.络接口*** -i定抓包的网络接口,比如`-i eth0`表示从eth0接口抓包 * -B定抓包的带宽,比如`-B 500K`表示最高抓取500K的数据 **2.滤表达式*** -e取数据的过滤表达式,比如`-e tcp[14:2]==0x0514`表示过滤TCP标志和序号为0x0514的数据包* -d取数据的过滤表达式,等效于-e参数**3.符编码*** -n取数据时,不解析DNS和hostname* -t 不显示时间戳* -S示源地址和目的地址* -c定抓取数据包个数* -q 以简单的形式显示,不显示协议头信息####、实战以抓取IP地址为192.168.1.1的80端口的HTTP请求为例,使用tcpdump命令如下:```tcpdump -i eth0 -nn -s 0 -XS host 192.168.1.1 and port 80```以上命令的含义为,从网卡eth0接口上抓取长度为0的数据包,目标地址为192.168.1.1,且端口号为80的数据包,并以十六进制与ASCII格式显示出来。
Linux命令高级技巧通过tcpdump命令进行网络抓包和分析Linux是一款广泛应用于服务器和嵌入式设备的操作系统,具有强大的功能和灵活性。
与其他操作系统相比,Linux提供了丰富的命令行工具,其中之一就是tcpdump命令。
tcpdump是一款用于抓取网络数据包并进行分析的强大工具,它可以帮助用户深入了解网络通信,解决网络故障和排查安全问题。
在本文中,我们将介绍如何使用tcpdump 命令进行网络抓包和分析。
一、什么是网络抓包?网络抓包是指在计算机网络中捕获和保存网络数据包的过程。
网络数据包是信息在网络中传输的基本单位,它包含了源IP地址、目标IP 地址、协议类型、端口号等重要信息。
通过抓包,我们可以观察和分析网络通信的行为,帮助我们了解网络设备之间的交互过程,诊断网络故障,以及排查安全问题。
二、tcpdump命令的基本用法tcpdump命令是一款基于命令行的工具,用于捕获和分析网络数据包。
下面是tcpdump命令的基本用法:```tcpdump [选项] [表达式]```其中,选项用于配置tcpdump的行为,表达式用于过滤需要捕获的数据包。
下面是一些常用的选项:- `-i`:指定要监听的网络接口。
- `-n`:禁用主机名解析,显示ip地址而非域名。
- `-X`:以16进制和ASCII码显示数据包内容。
- `-c`:指定捕获数据包的数量。
- `-s`:指定捕获数据包的最大长度。
例如,我们可以使用以下命令来捕获网络接口eth0上的前10个数据包,并以16进制和ASCII码显示数据包内容:```tcpdump -i eth0 -c 10 -X```三、tcpdump命令的高级用法除了基本用法外,tcpdump命令还提供了一些高级的用法,帮助用户更加灵活和精确地进行网络抓包和分析。
1. 根据协议过滤数据包tcpdump支持根据不同协议类型进行数据包的过滤。
常见的协议包括TCP、UDP、ICMP等。
Linux命令高级技巧使用tcpdump进行网络抓包TCPDump是一种常用的网络抓包工具,可以在Linux系统中使用。
它可以捕获网络数据包,并提供详细的分析和监测功能。
本文将介绍一些高级技巧,帮助您更好地使用tcpdump工具进行网络抓包。
1. 安装和基本使用要使用tcpdump,首先需要在Linux系统上安装它。
在终端中输入以下命令来安装tcpdump:```sudo apt-get install tcpdump```安装完成后,输入以下命令来开始抓包:```sudo tcpdump -i <interface>```其中,<interface>是要抓取网络流量的网络接口,如eth0或wlan0。
2. 抓取指定端口的数据包有时候,我们只对某个特定端口的网络流量感兴趣。
您可以使用以下命令来抓取指定端口的数据包:```sudo tcpdump -i <interface> port <port_number>```其中,<port_number>是您感兴趣的端口号。
3. 根据源IP或目标IP过滤数据包如果您只想抓取特定源IP或目标IP的数据包,可以使用以下命令进行过滤:```sudo tcpdump -i <interface> src <source_IP>```或```sudo tcpdump -i <interface> dst <destination_IP>```其中,<source_IP>是源IP地址,<destination_IP>是目标IP地址。
4. 保存抓包结果为文件您可以将抓到的数据包保存到文件中,以便稍后分析。
使用以下命令将数据包保存到文件:```sudo tcpdump -i <interface> -w <output_file>```其中,<output_file>是保存数据包的文件名。
tcpdump常用命令用法tcpdump是一个常用的网络抓包工具,可以用来分析网络流量,下面是一些常见的tcpdump命令用法:1. 抓取指定网卡的所有流量:```tcpdump -i eth0```这里的eth0是网卡的名称,可以根据实际情况替换。
2. 抓取指定源IP和目标IP的流量:```tcpdump src <source_ip> and dst <destination_ip>```source_ip和destination_ip分别是源IP和目标IP地址。
3. 抓取指定端口的流量:```tcpdump port <port_number>```port_number是要抓取的端口号。
4. 抓取指定协议的流量:```tcpdump -v icmp```这里的icmp是要抓取的协议,可以是icmp、tcp、udp等。
5. 抓取指定主机的流量:```tcpdump host <hostname>```hostname是要抓取的主机名。
6. 抓取指定长度的流量:```tcpdump less <length>```length是要抓取的数据包长度。
7. 将抓包结果保存到文件中:```tcpdump -w <output_file>```output_file是保存抓包结果的文件名。
8. 从文件中读取抓包结果进行分析:```tcpdump -r <input_file>```input_file是要读取的抓包结果文件名。
这些命令用法只是tcpdump的一部分功能,更详细的使用方法可以参考tcpdump的帮助文档。
tcpdump常用抓包命令一、什么是tcpdumptcpdump是一款用于抓取网络数据包的功能强大的命令行工具。
它可以通过监听网络接口,捕获和分析传输过程中的数据包,对网络问题进行排查和故障分析。
二、安装tcpdump在大多数Linux发行版中,tcpdump已经默认安装。
如果您的系统没有预装tcpdump,可以通过以下命令进行安装:sudo apt-get install tcpdump # Debian/Ubuntusudo yum install tcpdump # CentOS/RHEL三、tcpdump的基本用法1. 抓取数据包使用tcpdump进行抓包非常简单,只需要在命令行中输入tcpdump命令即可开始捕获所有的数据包。
tcpdump2. 指定网络接口如果有多个网络接口可以选择,可以使用-i参数指定要监听的网络接口。
例如,要监听eth0接口的数据包,可以使用以下命令:tcpdump -i eth03. 保存捕获的数据包默认情况下,tcpdump会将捕获的数据包输出到标准输出。
如果需要将数据包保存到文件中,可以使用-w参数指定文件名。
例如,将数据包保存到capture.pcap文件中:tcpdump -w capture.pcap4. 显示捕获的数据包内容通过默认设置,tcpdump只会以十六进制格式显示捕获的数据包。
如果想要查看更多的信息,可以使用-A参数以ASCII格式显示数据包内容。
例如:tcpdump -A5. 显示源和目标IP地址如果只需要查看数据包的源和目标IP地址,而不关心其他详细内容,可以使用-n 参数。
例如:tcpdump -n四、高级用法1. 指定抓包数量默认情况下,tcpdump会一直抓包直到用户终止程序。
如果只需要抓取固定数量的数据包,可以使用-c参数指定要抓取的包数量。
例如,只抓取10个数据包:tcpdump -c 102. 使用过滤器tcpdump可以使用过滤器来指定要抓取的数据包的条件。
tcpdump使用方法一、什么是tcpdumptcpdump是一种在Linux和Unix操作系统上使用的网络抓包工具。
它可以捕获网络数据包并将其显示或保存到文件中,以供后续分析和诊断。
tcpdump可以用于调试网络问题、监视网络流量、分析网络协议等。
二、安装tcpdump1.在Ubuntu上安装tcpdump:sudo apt-get install tcpdump2.在CentOS上安装tcpdump:sudo yum install tcpdump三、基本用法1.捕获所有数据包:sudo tcpdump -i eth0-i选项指定要监听的接口,eth0为网卡接口名称。
2.捕获指定端口的数据包:sudo tcpdump -i eth0 port 80port选项指定要监听的端口号,80为HTTP服务默认端口号。
3.捕获指定IP地址的数据包:sudo tcpdump -i eth0 host 192.168.1.100host选项指定要监听的IP地址,192.168.1.100为目标IP地址。
4.捕获指定协议类型的数据包:sudo tcpdump -i eth0 icmpicmp为ICMP协议类型。
5.捕获指定源IP地址和目标IP地址之间的数据包:sudo tcpdump -i eth0 src 192.168.1.100 and dst 192.168.1.200 src选项指定源IP地址,dst选项指定目标IP地址。
6.保存抓包结果到文件:sudo tcpdump -i eth0 -w capture.pcap-w选项指定保存到文件的名称,capture.pcap为文件名。
7.读取保存的抓包结果:sudo tcpdump -r capture.pcap-r选项指定读取文件的名称,capture.pcap为文件名。
四、高级用法1.显示数据包详细信息:sudo tcpdump -i eth0 -v-v选项可以显示更详细的信息,如源地址、目标地址、协议类型等。
tcpdump抓包条件tcpdump是一款强大的网络抓包工具,可用于捕获和分析网络数据包。
在使用tcpdump时,可以通过设置特定的条件来过滤和捕获感兴趣的数据包。
以下是一些常见的抓包条件:1. 捕获特定网络接口的数据包:使用-i选项可以指定抓取数据包的网络接口。
例如,如果希望捕获eth0接口上的数据包,可以使用以下命令:```tcpdump -i eth0```2. 指定源和目的IP地址:使用src和dst选项可以过滤来源或目的IP地址。
例如,如果希望只捕获来自10.0.0.1的数据包,可以使用以下命令:```tcpdump src 10.0.0.1```类似地,可以使用dst选项来指定目的IP地址。
3. 指定协议类型:使用proto选项可以过滤特定的协议类型。
例如,如果希望只捕获TCP协议的数据包,可以使用以下命令:```tcpdump proto TCP```4. 指定端口号:使用port选项可以过滤特定的端口号。
例如,如果希望只捕获目的端口号为80的数据包,可以使用以下命令:```tcpdump dst port 80```类似地,可以使用src port选项来指定源端口号。
5. 指定数据包长度:使用len选项可以过滤特定长度的数据包。
例如,如果希望只捕获长度大于100字节的数据包,可以使用以下命令:```tcpdump len greater 100```类似地,可以使用len less选项来指定长度小于某个值的数据包。
6. 使用逻辑运算符:可以使用逻辑运算符来组合多个过滤条件。
例如,如果希望捕获源IP地址为10.0.0.1并且目的端口号为80的数据包,可以使用以下命令:```tcpdump src 10.0.0.1 and dst port 80```7. 如何保存抓包数据:默认情况下,tcpdump将抓到的数据包输出到终端。
如果希望将数据包保存到文件中进行进一步分析,可以使用-w选项。
Linux命令技巧利用tcpdump进行网络流量抓取和分析Linux命令技巧:利用tcpdump进行网络流量抓取和分析在网络安全和网络故障排除中,了解和分析网络流量是非常重要的一环。
在Linux环境下,使用tcpdump命令可以方便地进行网络流量的抓取和分析。
本文将介绍tcpdump的基本用法,并提供一些技巧和示例,帮助读者更好地利用tcpdump进行网络流量分析。
1. tcpdump的基本用法tcpdump是一款开源的网络数据包截获工具。
它可以在终端窗口中运行,捕获网络接口上的数据包,并以不同的格式展示出来。
以下是tcpdump的基本用法:```shelltcpdump [选项] [过滤条件]```- 选项:可以用于指定如何捕获和展示数据包的详细信息。
常用的选项包括:-i(指定网络接口)、-c(指定捕获的数据包数量)、-v (显示详细信息)等。
- 过滤条件:用于过滤感兴趣的数据包。
过滤条件可以基于协议、源/目的IP地址、端口号等。
常用的过滤条件包括:host、port、tcp、udp等。
2. 抓取网络流量首先,我们需要确定要抓取的网络接口。
可以使用ifconfig命令获取系统中当前的网络接口列表。
假设我们要抓取eth0接口上的网络流量,可以使用以下命令:```shellsudo tcpdump -i eth0```运行上述命令后,tcpdump将开始捕获eth0接口上的所有数据包,并将其展示在终端窗口中。
3. 过滤网络流量tcpdump允许使用过滤条件来指定我们感兴趣的数据包。
例如,我们只想抓取源IP地址为192.168.0.1的HTTP流量,可以使用如下命令:```shellsudo tcpdump -i eth0 host 192.168.0.1 and port 80```上述命令中,host指定了源IP地址,port指定了目的端口号。
4. 保存流量数据除了直接在终端窗口中展示流量数据外,tcpdump还可以将数据保存到文件中供后续分析。
tcpdump抓包分析详解[root@linux ~]# tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae][-qX] [-r 档案] [所欲撷取的数据内容]参数:-nn:直接以IP 及port number 显示,而非主机名与服务名称-i :后面接要『监听』的网络接口,例如eth0, lo, ppp0 等等的界面;-w :如果你要将监听所得的封包数据储存下来,用这个参数就对了!后面接档名-c :监听的封包数,如果没有这个参数,tcpdump 会持续不断的监听,直到使用者输入[ctrl]-c 为止。
-A :封包的内容以ASCII 显示,通常用来捉取WWW 的网页封包资料。
-e :使用资料连接层(OSI 第二层) 的MAC 封包数据来显示;-q :仅列出较为简短的封包信息,每一行的内容比较精简-X :可以列出十六进制(hex) 以及ASCII 的封包内容,对于监听封包内容很有用-r :从后面接的档案将封包数据读出来。
那个『档案』是已经存在的档案,并且这个『档案』是由-w 所制作出来的。
所欲撷取的数据内容:我们可以专门针对某些通讯协议或者是IP 来源进行封包撷取,那就可以简化输出的结果,并取得最有用的信息。
常见的表示方法有:'host foo', 'host 127.0.0.1' :针对单部主机来进行封包撷取'net 192.168' :针对某个网域来进行封包的撷取;'src host 127.0.0.1' 'dst net 192.168':同时加上来源(src)或目标(dst)限制'tcp port 21':还可以针对通讯协议侦测,如tcp, udp, arp, ether 等还可以利用and 与or 来进行封包数据的整合显示呢!范例一:以IP 与port number 捉下eth0 这个网络卡上的封包,持续 3 秒[root@linux ~]# tcpdump -i eth0 -nntcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 116:232(116) ack 1 win 964801:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 232:364(132) ack 1 win 9648<==按下[ctrl]-c 之后结束6680 packets captured <==捉下来的封包数量14250 packets received by filter <==由过滤所得的总封包数量7512 packets dropped by kernel <==被核心所丢弃的封包如果你是第一次看tcpdump 的man page 时,肯定一个头两个大,因为tcpdump 几乎都是分析封包的表头数据,用户如果没有简易的网络封包基础,要看懂粉难吶!所以,至少您得要回到网络基础里面去将TCP 封包的表头数据理解理解才好啊!^_^!至于那个范例一所产生的输出范例中,我们可以约略区分为数个字段,我们以范例一当中那个特殊字体行来说明一下:01:33:40.41:这个是此封包被撷取的时间,『时:分:秒』的单位;IP:透过的通讯协议是IP ;192.168.1.100.22 > :传送端是192.168.1.100 这个IP,而传送的port number 为22,您必须要了解的是,那个大于(>) 的符号指的是封包的传输方向喔!192.168.1.11.1190:接收端的IP 是192.168.1.11,且该主机开启port 1190 来接收;P 116:232(116):这个封包带有PUSH 的数据传输标志,且传输的数据为整体数据的116~232 byte,所以这个封包带有116 bytes 的数据量;ack 1 win 9648:ACK与Window size 的相关资料。
服务器抓包命令:tcpdump详解简介:tcpdump,就是:dump the traffic on a network,根据使⽤者的定义对⽹络上的数据包进⾏截获的包分析⼯具。
⼀个No-GUI的抓包分析⼯具。
tcpdump,可以将⽹络中传送的数据包的“头”完全截获下来提供分析。
它⽀持针对⽹络层、协议、主机、⽹络或端⼝的过滤,并提供and、or、not等逻辑语句来帮助你去掉⽆⽤的信息。
Linux已经⾃动安装,可直接使⽤。
概要:tcpdump采⽤命令⾏⽅式,它的命令格式为:tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ][ -c count ] [ -C file_size ][ -E spi@ipaddr algo:secret,... ][ -F file ] [ -G rotate_seconds ] [ -i interface ][ --immediate-mode ] [ -j tstamp_type ] [ -m module ][ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ][ -r file ] [ -s snaplen ] [ -T type ] [ --version ][ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ][ -z postrotate-command ] [ -Z user ][ --time-stamp-precision=tstamp_precision ][ expression ]tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ][ -C file_size ] [ -F file ][ -i interface ] [ -m module ] [ -M secret ][ -r file ] [ -s snaplen ] [ -T type ] [ -w file ][ -W filecount ][ -E spi@ipaddr algo:secret,... ][ -y datalinktype ] [ -Z user ][ expression ]-A 以ASCII码⽅式显⽰每⼀个数据包(不会显⽰数据包中链路层头部信息). 在抓取包含⽹页数据的数据包时, 可⽅便查看数据(nt: 即Handy for capturing web pages).-b 使⽤ASDOT表⽰法在BGP数据包中打印AS号,⽽不是ASPLAIN表⽰法-B buffer_size--buffer-size=buffer_size将操作系统捕获缓冲区⼤⼩设置为buffer_size,单位为KiB(1024字节)-c counttcpdump将在接受到count个数据包后退出.-C file-size (nt: 此选项⽤于配合-w file 选项使⽤)该选项使得tcpdump 在把原始数据包直接保存到⽂件中之前, 检查此⽂件⼤⼩是否超过file-size. 如果超过了, 将关闭此⽂件,另创⼀个⽂件继续⽤于原始数据包的记录. 新创建的⽂件名与-w 选项指定的⽂件名⼀致, 但⽂件名后多了⼀个数字.该数字会-d 以容易阅读的形式,在标准输出上打印出编排过的包匹配码, 随后tcpdump停⽌.(nt | rt: human readable, 容易阅读的,通常是指以ascii码来打印⼀些信息. compiled, 编排过的. packet-matching code, 包匹配码,含义未知, 需补充)-dd 以C语⾔的形式打印出包匹配码.-ddd 以⼗进制数的形式打印出包匹配码(会在包匹配码之前有⼀个附加的'count'前缀).-D 打印系统中所有tcpdump可以在其上进⾏抓包的⽹络接⼝. 每⼀个接⼝会打印出数字编号, 相应的接⼝名字, 以及可能的⼀个⽹络接⼝描述. 其中⽹络接⼝名字和数字编号可以⽤在tcpdump 的-i flag 选项(nt: 把名字或数字代替flag), 来指定要在其上抓此选项在不⽀持接⼝列表命令的系统上很有⽤(nt: ⽐如, Windows 系统, 或缺乏 ifconfig -a 的UNIX系统); 接⼝的数字编号在windows 2000 或其后的系统中很有⽤, 因为这些系统上的接⼝名字⽐较复杂, ⽽不易使⽤.如果tcpdump编译时所依赖的libpcap库太⽼,-D 选项不会被⽀持, 因为其中缺乏 pcap_findalldevs()函数.-e 每⾏的打印输出中将包括数据包的数据链路层头部信息-E spi@ipaddr algo:secret,...可通过spi@ipaddr algo:secret 来解密IPsec ESP包(nt | rt:IPsec Encapsulating Security Payload,IPsec 封装安全负载, IPsec可理解为, ⼀整套对ip数据包的加密协议, ESP 为整个IP 数据包或其中上层协议部分被加密后的数据,前者的⼯作模式称为需要注意的是, 在终端启动tcpdump 时, 可以为IPv4 ESP packets 设置密钥(secret).可⽤于加密的算法包括des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, 或者没有(none).默认的是des-cbc(nt: des, Data Encryption Standard, 数据加密标准, 加密算法未知, 另需补充).secret 为⽤于ESP 的密钥, 使⽤ASCII 字符串⽅式表达该选项中ESP 的定义遵循RFC2406, ⽽不是 RFC1827. 并且, 此选项只是⽤来调试的, 不推荐以真实密钥(secret)来使⽤该选项, 因为这样不安全: 在命令⾏中输⼊的secret 可以被其他⼈通过ps 等命令查看到.除了以上的语法格式(nt: 指spi@ipaddr algo:secret), 还可以在后⾯添加⼀个语法输⼊⽂件名字供tcpdump 使⽤(nt:即把spi@ipaddr algo:secret,... 中...换成⼀个语法⽂件名). 此⽂件在接受到第⼀个ESP 包时会打开此⽂件, 所以最好此时把赋予tcp -f 显⽰外部的IPv4 地址时(nt: foreign IPv4 addresses, 可理解为, ⾮本机ip地址), 采⽤数字⽅式⽽不是名字.(此选项是⽤来对付Sun公司的NIS服务器的缺陷(nt: NIS, ⽹络信息服务, tcpdump 显⽰外部地址的名字时会⽤到她提供的名称服务): 此NIS服务由于对外部(foreign)IPv4地址的测试需要⽤到本地⽹络接⼝(nt: tcpdump 抓包时⽤到的接⼝)及其IPv4 地址和⽹络掩码. 如果此地址或⽹络掩码不可⽤, 或者此接⼝根本就没有设置相应⽹络地址和⽹络掩码(nt: linux 下的 'any' ⽹络接⼝就不需要设置地-F file使⽤file ⽂件作为过滤条件表达式的输⼊, 此时命令⾏上的输⼊将被忽略.-i interface指定tcpdump 需要监听的接⼝. 如果没有指定, tcpdump 会从系统接⼝列表中搜寻编号最⼩的已配置好的接⼝(不包括 loopback 接⼝).⼀但找到第⼀个符合条件的接⼝, 搜寻马上结束.在采⽤2.2版本或之后版本内核的Linux 操作系统上, 'any' 这个虚拟⽹络接⼝可被⽤来接收所有⽹络接⼝上的数据包(nt: 这会包括⽬的是该⽹络接⼝的, 也包括⽬的不是该⽹络接⼝的). 需要注意的是如果真实⽹络接⼝不能⼯作在'混杂'模式(promiscuou 如果 -D 标志被指定, tcpdump会打印系统中的接⼝编号,⽽该编号就可⽤于此处的interface 参数.-l 对标准输出进⾏⾏缓冲(nt: 使标准输出设备遇到⼀个换⾏符就马上把这⾏的内容打印出来).在需要同时观察抓包打印以及保存抓包记录的时候很有⽤. ⽐如, 可通过以下命令组合来达到此⽬的:``tcpdump -l | tee dat'' 或者 ``tcpdump -l > dat & tail -f dat''.(nt: 前者使⽤tee来把tcpdump 的输出同时放到⽂件dat和标准输出中, ⽽后者通过重定向操作'>', 把tcpdump的输出放到dat ⽂件中, 同时通过tail把dat⽂件中的内容放到标准输出中) -L 列出指定⽹络接⼝所⽀持的数据链路层的类型后退出.(nt: 指定接⼝通过-i 来指定)-m module通过module 指定的file 装载SMI MIB 模块(nt: SMI,Structure of Management Information, 管理信息结构MIB, Management Information Base, 管理信息库. 可理解为, 这两者⽤于SNMP(Simple Network Management Protoco)协议数据包的抓取. 具此选项可多次使⽤, 从⽽为tcpdump 装载不同的MIB 模块.-M secret 如果TCP 数据包(TCP segments)有TCP-MD5选项(在RFC 2385有相关描述), 则为其摘要的验证指定⼀个公共的密钥secret.-n 不对地址(⽐如, 主机地址, 端⼝号)进⾏数字表⽰到名字表⽰的转换.-N 不打印出host 的域名部分. ⽐如, 如果设置了此选现, tcpdump 将会打印'nic' ⽽不是 ''.-O 不启⽤进⾏包匹配时所⽤的优化代码. 当怀疑某些bug是由优化代码引起的, 此选项将很有⽤.-p ⼀般情况下, 把⽹络接⼝设置为⾮'混杂'模式. 但必须注意 , 在特殊情况下此⽹络接⼝还是会以'混杂'模式来⼯作;从⽽, '-p' 的设与不设, 不能当做以下选现的代名词:'ether host {local-hw-add}' 或 'ether broadcast'(nt: 前者表⽰只匹配以太⽹地址为ho -q 快速(也许⽤'安静'更好?)打印输出. 即打印很少的协议相关信息, 从⽽输出⾏都⽐较简短.-R 设定tcpdump 对 ESP/AH 数据包的解析按照 RFC1825⽽不是RFC1829(nt: AH, 认证头, ESP,安全负载封装, 这两者会⽤在IP包的安全传输机制中). 如果此选项被设置, tcpdump 将不会打印出'禁⽌中继'域(nt: relay prevention field). 另外,由于ES-r file从⽂件file 中读取包数据. 如果file 字段为 '-' 符号, 则tcpdump 会从标准输⼊中读取包数据.-S 打印TCP 数据包的顺序号时, 使⽤绝对的顺序号, ⽽不是相对的顺序号.(nt: 相对顺序号可理解为, 相对第⼀个TCP 包顺序号的差距,⽐如, 接受⽅收到第⼀个数据包的绝对顺序号为232323, 对于后来接收到的第2个,第3个数据包, tcpdump会打印其序-s snaplen设置tcpdump的数据包抓取长度为snaplen, 如果不设置默认将会是68字节(⽽⽀持⽹络接⼝分接头(nt: NIT, 上⽂已有描述,可搜索'⽹络接⼝分接头'关键字找到那⾥)的SunOS系列操作系统中默认的也是最⼩值是96).68字节对于IP, ICMP(nt: Internet C -T type强制tcpdump按type指定的协议所描述的包结构来分析收到的数据包. ⽬前已知的type 可取的协议为:aodv (Ad-hoc On-demand Distance Vector protocol, 按需距离向量路由协议, 在Ad hoc(点对点模式)⽹络中使⽤),cnfp (Cisco NetFlow protocol), rpc(Remote Procedure Call), rtp (Real-Time Applications protocol),rtcp (Real-Time Applications con-trol protocol), snmp (Simple Network Management Protocol),tftp (Trivial File Transfer Protocol, 碎⽂件协议), vat (Visual Audio Tool, 可⽤于在internet 上进⾏电视电话会议的应⽤层协议), 以及wb (distributed White Board, 可⽤于⽹络会议的应⽤层协议).-t 在每⾏输出中不打印时间戳-tt 不对每⾏输出的时间进⾏格式处理(nt: 这种格式⼀眼可能看不出其含义, 如时间戳打印成1261798315)-ttt tcpdump 输出时, 每两⾏打印之间会延迟⼀个段时间(以毫秒为单位)-tttt 在每⾏打印的时间戳之前添加⽇期的打印-u 打印出未加密的NFS 句柄(nt: handle可理解为NFS 中使⽤的⽂件句柄, 这将包括⽂件夹和⽂件夹中的⽂件)-U 使得当tcpdump在使⽤-w 选项时, 其⽂件写⼊与包的保存同步.(nt: 即, 当每个数据包被保存时, 它将及时被写⼊⽂件中,⽽不是等⽂件的输出缓冲已满时才真正写⼊此⽂件)-U 标志在⽼版本的libcap库(nt: tcpdump 所依赖的报⽂捕获库)上不起作⽤, 因为其中缺乏pcap_cump_flush()函数.-v 当分析和打印的时候, 产⽣详细的输出. ⽐如, 包的⽣存时间, 标识, 总长度以及IP包的⼀些选项. 这也会打开⼀些附加的包完整性检测, ⽐如对IP或ICMP包头部的校验和.-vv 产⽣⽐-v更详细的输出. ⽐如, NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码.-vvv 产⽣⽐-vv更详细的输出. ⽐如, telent 时所使⽤的SB, SE 选项将会被打印, 如果telnet同时使⽤的是图形界⾯,其相应的图形选项将会以16进制的⽅式打印出来(nt: telnet 的SB,SE选项含义未知, 另需补充).-w 把包数据直接写⼊⽂件⽽不进⾏分析和打印输出. 这些包数据可在随后通过-r 选项来重新读⼊并进⾏分析和打印.-W filecount此选项与-C 选项配合使⽤, 这将限制可打开的⽂件数⽬, 并且当⽂件数据超过这⾥设置的限制时, 依次循环替代之前的⽂件, 这相当于⼀个拥有filecount 个⽂件的⽂件缓冲池. 同时, 该选项会使得每个⽂件名的开头会出现⾜够多并⽤来占位的0, 这可-x 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制打印出每个包的数据(但不包括连接层的头部).总共打印的数据⼤⼩不会超过整个数据包的⼤⼩与snaplen 中的最⼩值. 必须要注意的是, 如果⾼层协议数据没有snaplen 这么长,并-xx tcpdump 会打印每个包的头部数据, 同时会以16进制打印出每个包的数据, 其中包括数据链路层的头部.-X 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部).这对于分析⼀些新协议的数据包很⽅便.-XX 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据, 其中包括数据链路层的头部.这对于分析⼀些新协议的数据包很⽅便.-y datalinktype设置tcpdump 只捕获数据链路层协议类型是datalinktype的数据包-Z user使tcpdump 放弃⾃⼰的超级权限(如果以root⽤户启动tcpdump, tcpdump将会有超级⽤户权限), 并把当前tcpdump的⽤户ID设置为user, 组ID设置为user⾸要所属组的ID(nt: tcpdump 此处可理解为tcpdump 运⾏之后对应的进程)此选项也可在编译的时候被设置为默认打开.(nt: 此时user 的取值未知, 需补充)命令实例:⼀、默认启动tcpdump:直接启动tcpdump将监视第⼀个⽹络接⼝上所有流过的数据包。
tcpdump抓包命令使⽤教程⽬录tcpdump 是Linux系统下的⼀个强⼤的命令,可以将⽹络中传送的数据包完全截获下来提供分析。
它⽀持针对⽹络层、协议、主机、⽹络或端⼝的过滤,并提供and、or、not等逻辑语句来帮助你去掉⽆⽤的信息。
⼀、tcpdump 命令格式介绍⾸先我们对Linux系统下tcpdump命令格式进⾏⼀个介绍说明,在下⾯的使⽤教程中讲到tcpdump命令⽰例时,您就可以参考tcpdump命令参数说明进⾏学习。
1.1 语法tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ][ -C file_size ] [ -G rotate_seconds ] [ -F file ][ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ][ -Q|-P in|out|inout ][ -r file ] [ -s snaplen ] [ -T type ] [ -w file ][ -W filecount ][ -E spi@ipaddr algo:secret,... ][ -y datalinktype ] [ -z postrotate-command ] [ -Z user ][ expression ]1.2 命令⾏参数介绍-A 以ASCII格式打印出所有分组,并将链路层的头最⼩化。
-c 在收到指定的数量的分组后,tcpdump就会停⽌。
-C 在将⼀个原始分组写⼊⽂件之前,检查⽂件当前的⼤⼩是否超过了参数file_size中指定的⼤⼩。
如果超过了指定⼤⼩,则关闭当前⽂件,然后在打开⼀个新的⽂件。
参数 file_size的单位是兆字节(是1,000,000字节,⽽不是1,048,576字节)。
-d 将匹配信息包的代码以⼈们能够理解的汇编格式给出。
tcpdump抓包及tshark解包⽅法介绍tshark是wireshark的命令⾏⼯具,通过shell命令抓取、解析报⽂。
tcpdump是Linux系统下的抓包⼯具。
wireshark和tcpdump都共同使⽤libpcap作为其底层抓包的库,tshark也可以抓取报⽂。
有时候需要在linux系统或者ARM开发板中进⾏抓包,使⽤tcpdump抓包更加⽅便,在这种场景下,⼀般使⽤tcpdump进⾏抓包,然后在Windows中使⽤wireshark来分析⽣成的包⽂件,在⾃动化分析或者⾃动化测试中,可以使⽤tshark来进⾏包解析。
本⽂介绍使⽤tcpdump抓取报⽂后使⽤tshark进⾏报⽂解析。
安装# linuxyum -y install wiresharkyum -y install tcpdump帮助信息$ tcpdump -h查看可⽤端⼝:$ tcpdump -D1.ens332.ens373.veth2424bf44.any (Pseudo-device that captures on all interfaces)5.lo [Loopback]tcpdump常⽤参数-i interface:指定抓包接⼝,tcpdump -i eth1-c count:抓取包个数,tcpdump -c 5 -i eth0仅抓取5个包-w file:保存-A:ASCII码形式打印报⽂-XX:HEX 和 ASCII形式显⽰报⽂抓包抓取eth1⽹卡数据包,数据写⼊⽂件/tmp/packet.pcaptcpdump -i eth1 -w /tmp/packet.pcap >/dev/null 2>&1 &其中>/dev/null:将标准输出(控制台输出)重定向到/dev/null中,/dev/null代表 linux 的空设备⽂件。
表⽰不输出内容2>&1:重定向绑定,错误输出(2)和标准输出(1)输出到同⼀个地⽅>/dev/null 2>&1的作⽤就是丢弃标准输出和错误输出,不会输出任何信息到控制台。
tcpdump常用抓包命令TCPDump是一个基于命令行的抓包工具,它可以帮助网络管理员和安全专家捕获和分析数据包。
在网络故障排除、网络性能分析和网络安全检测等方面都有着广泛的应用。
本文将介绍TCPDump的常用抓包命令。
一、基本使用1.抓取指定网卡的数据包tcpdump -i eth0-i选项后面跟要抓取数据包的网卡名称,这里以eth0为例。
2.保存抓取到的数据包tcpdump -i eth0 -w capture.pcap-w选项后面跟要保存数据包的文件名,这里以capture.pcap为例。
3.读取已保存的数据包文件tcpdump -r capture.pcap-r选项后面跟要读取的数据包文件名,这里以capture.pcap为例。
二、过滤器使用1.根据IP地址过滤数据包tcpdump host 192.168.1.1host选项后面跟要过滤的IP地址,这里以192.168.1.1为例。
2.根据端口号过滤数据包tcpdump port 80port选项后面跟要过滤的端口号,这里以80为例。
3.根据协议类型过滤数据包tcpdump icmpicmp表示Internet控制报文协议。
4.组合使用多个条件进行过滤tcpdump host 192.168.1.1 and port 80and表示“与”的关系,即同时满足两个条件。
tcpdump host 192.168.1.1 or port 80or表示“或”的关系,即满足其中一个条件即可。
5.使用逻辑运算符进行复杂过滤tcpdump 'src net 192.168.1 and (dst net 10 or dst net 172)'这里使用了括号和逻辑运算符进行复杂的过滤,筛选出源IP地址为192.168.1开头,目的IP地址为10或172开头的数据包。
三、高级使用1.抓取指定数量的数据包tcpdump -c 100-c选项后面跟要抓取的数据包数量,这里以100为例。
tcpdump⾮常实⽤的抓包实例转⾃:详细的⽂档见基本语法========过滤主机--------- 抓取所有经过 eth1,⽬的或源地址是 192.168.1.1 的⽹络数据# tcpdump -i eth1 host 192.168.1.1- 源地址# tcpdump -i eth1 src host 192.168.1.1- ⽬的地址# tcpdump -i eth1 dst host 192.168.1.1过滤端⼝--------- 抓取所有经过 eth1,⽬的或源端⼝是 25 的⽹络数据# tcpdump -i eth1 port 25- 源端⼝# tcpdump -i eth1 src port 25- ⽬的端⼝# tcpdump -i eth1 dst port 25⽹络过滤--------# tcpdump -i eth1 net 192.168# tcpdump -i eth1 src net 192.168# tcpdump -i eth1 dst net 192.168可以加⼊-X参数,查看包内容协议过滤--------# tcpdump -i eth1 arp# tcpdump -i eth1 ip# tcpdump -i eth1 tcp# tcpdump -i eth1 udp# tcpdump -i eth1 icmp常⽤表达式----------⾮ : ! or "not" (去掉双引号)且 : && or "and"或 : || or "or"- 抓取所有经过 eth1,⽬的地址是 192.168.1.254 或 192.168.1.200 端⼝是 80 的 TCP 数据# tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host192.168.1.200)))'- 抓取所有经过 eth1,⽬标 MAC 地址是 00:01:02:03:04:05 的 ICMP 数据# tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'- 抓取所有经过 eth1,⽬的⽹络是 192.168,但⽬的主机不是 192.168.1.200 的 TCP 数据# tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'- 只抓 SYN 包# tcpdump -i eth1 'tcp[tcpflags] = tcp-syn'- 抓 SYN, ACK# tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'抓 SMTP 数据----------# tcpdump -i eth1 '((port 25) and (tcp[(tcp[12]>>2):4] = 0x4d41494c))'抓取数据区开始为"MAIL"的包,"MAIL"的⼗六进制为 0x4d41494c。
Tcpdump常用命令及基础故障定位3板斧!(新工程师转正必需掌握)在老4k系统和TOS中的.1平台和.8平台(猎豹)支持TCPDUMP命令。
Tcpdump中and、not、or、host、port、grep、-e、-vv参数的使用:例1:在eth1口抓包,只显示地址为10.1.1.1和icmp协议的报文。
Tcpdump –i eth1 host 10.1.1.1 and icmp例2:在所有的接口抓包,不显示4000端口的管理报文,和23端口的telnet报文。
Tcpdump –i any not port 4000 and not port 23 (在同时管理的时候很实用)例3:在eth1口抓包,显示地址为211.1.1.1或10.1.1.1的报文。
Tcpdump –i eth1 host 211.1.1.1 or host 10.1.1.1 (针对MAP前后的地址同时抓包定位时非常实用)例4:在所有的接口抓包,显示地址为10.1.1.1报文。
Tcpdump |grep host 10.1.1.1 (在adls环境中非常实用,封装了PPPOE的报文也能抓到,但是TOS不支持grep的参数了)在tos系统中,X86的平台下才有抓包的工具,-n表示不需要域名解析,加快抓包的速度。
并且-evv比老的4k系统中,能抓到更多的信息,其中还包括校验和。
例5:System tcpdump –i any –evv -n (TOS系统中最后必须加-n的参数,才能保证抓包的速度)例6:System tcpdump –i ipsec0 -n (TOS支持在ipsec0中抓包,来判断数据流是否进入隧道)例7:System tcpdump –i ppp0 -n (TOS支持在ppp0中抓包,来判断数据流是否进入PPPoE 的封装)现场通过抓包来定位故障原因是最准确高效的方法:下面抓包中,客户端源地址为168.36.126.1 MAP地址为209.136.47.12 服务器真实地址为11.68.21.12对于目的地址转换,天融信也俗称为MAP转换。
使用tcpdump命令在Linux中抓取指定端口的网络数据包在Linux中使用tcpdump命令抓取指定端口的网络数据包在网络通信中,数据包的抓取和分析是非常重要的,它能帮助我们了解网络流量、问题排查、安全性分析等方面的情况。
在Linux系统中,我们可以使用tcpdump命令来实现抓取指定端口的网络数据包。
本文将介绍如何使用tcpdump命令在Linux系统中抓取指定端口的网络数据包。
一、什么是tcpdump命令tcpdump是一个在Unix和Linux系统下的用于抓取网络数据包的命令行工具。
它能够监听网络接口上的网络流量,并将数据包内容以及相关的信息进行输出。
tcpdump命令可以根据用户的需求,对网络数据包进行过滤、解析和保存。
二、安装tcpdump在开始使用tcpdump之前,我们需要先确保系统已经安装了该命令。
可以通过以下命令来检查是否已经安装了tcpdump:```$ tcpdump -h```如果系统没有安装tcpdump,可以使用以下命令来安装:```$ sudo apt-get install tcpdump```三、tcpdump命令的基本用法tcpdump命令的基本语法如下:```$ tcpdump [选项] [表达式]```其中,选项用于指定tcpdump命令的具体行为,而表达式用于过滤所抓取的网络数据包。
下面介绍一些常用的选项和表达式:1. 选项- -i:指定网络接口,如eth0、wlan0等。
- -c:指定抓取数据包的数量。
- -v:输出详细的数据包信息。
- -X:以16进制和ASCII格式显示数据包内容。
2. 表达式- host:按照主机进行过滤,如host 192.168.0.1。
- port:按照端口进行过滤,如port 80。
- src/dst:按照源地址或目的地址进行过滤,如src 192.168.0.1或dst 192.168.0.2。
- and/or/not:用于进行逻辑运算,如host 192.168.0.1 and port 80。
tcpdump工具抓包方案一、前言二、核心思想三、环境搭建四、抓包流程五、问题支持六、遗留B O S S一、前言利用tcpdump工具进行抓包其实就是我们之前一直说的“模拟器抓包”,当我们细细研究整个抓包过程后发现类似于“模拟器抓包”等说法其实并不严谨,因为这种抓包方式仅仅是需要借助安卓模拟器中SDK的环境,而整个抓包的过程很大程度上都要依赖tcpdump这个工具。
因此,为了之后能更深入的研究类似的抓包方法,在这里我们将使用linux命令调用tcpdump工具来截获网络中的数据包这一方法称之为“tcpdump方法。
”二、核心思想TcpDump是Linux中强大的网络数据采集分析工具之一。
而安卓系统就是基于Linux语言的,因此利用这个工具我们就能很轻松的抓取安卓系统上的数据包。
表述这种方法的关键词是“安卓SDK环境”、“linux命令”“tcpdump工具”,严谨一点来说,即:搭建一个SDK环境,通过adb连接设备,并对设备中的tcpdump工具下达linux命令来进行抓包,并传回PC端。
注:SDK:Software Development Kit, 即软件开发工具包Linux:Linux是一种自由和开放源码的类Unix操作系统,安卓手机的核心正是基于Linux内核。
adb:Android Debug Bridge,即安卓调试桥。
用来直接操作管理android模拟器或者真实的andriod设备。
三、环境搭建首先安装JDK 文件,并一步一步往下走直到安装完成,这里提供的是JDK1.6版本。
这里要注意的是,安装路径不要太过复杂,因为接下来配置环境时要用到这个路径。
①安装JDK 并配置Java 环境所需资源:JDK 安装包、SDK 模拟器、tcpdump 工具、Root Explorer以上资源均已准备好,请点击右侧这位女同志跳转至相应页面下载工具包。
安装完成以后,接下来便要完成Java 环境的配置,这一步虽然操作起来简单,但是也是非常容易出错的。
1关键字
Tcpdump,丢包,抓包
2Tcpdump抓包的作用
Tcpdump是linux系统自带的抓包工具,功能:
>抓进出Linux服务器的IP包
>抓下的IP包,可由WireShark等工具,解码为UDP和RTP包。
>抓下的IP包,可由WireShark等工具分析丢包情况
3Tcpdump常用方法
Tcpdump是linux系统自带的抓包工具,需要root权限才能运行。
//抓网卡eth2上所有进出的数据包,如果没有数据包,则通常会抓到广播包
数会保留所有TS数据包,故重要。
3.4指定入向端口
设入向端口为11866,转换为十六进制,即是0x2e5a,所以:
其中,ether[36]和ether[37]为接收端口的16进制表示。
3.5指定出向端口
其中, Ether[34]和ether[35]为发送端口的16进制表示。
3.6长时间抓包
在抓包命令后加“-C 100”,它会满100M后写到下一个新的文件。
直到磁盘满。
3.7后台执行
在抓包命令最后面再加一个&,这样可以后台一直抓。
这样的话,登录窗口可以关掉。
你想停止抓包,则得用PS把进程杀死。
4抓包分析快进快退
4.1找关键帧
RTP包是否为关键帧的标识保存在RTP扩展位中。
WireShark查看RTP包是否为关键帧。
00或者10:普通帧
20或者30: 关键帧首包
40或者50: 关键帧中间包
80或者90: 关键帧尾包
注:以上判断之所以有“或者”,是因为关键帧位只占了3比特。
4.2判断时戳
如果抓包为32倍速,要判断时戳是否正常,则可以用抓包里的:
(最大时戳-最小时戳)/90000/倍速=倍速播放时常
例如:
(709506270-490114260)/90000/32=76.17(秒)
然后可以查看每二列的Time是否约等于76秒。
如果是,则是正常的。
5抓包分析是否丢包
注意,不同版本的WireShark操作有所区别,下文中所用版本为1.3.0
5.1主要步骤
>确定端口号并转换为16进制。
>确定抓包的网口
>抓包并保存结果到文件
>解码:用WireShark打开结果文件并解码为IP,然后再解码为RTP
>用WireShark查看是否丢包
5.2详细步骤
5.2.1确定端口号并转换为16进制
例如入向端口为11866,转换为十六进制,即是0x2e5a
5.2.2确定抓包的网口
MSTU收发直播码流是通过网口eth2或者eth3.
不指定保存结果的文件,直接在屏幕上看输出,这种方法可确定是哪个网口收码流
其中:
-i eth2指定抓哪个网口
ether[KK]是指IP数据包的第KK个字节。
ether[12]=0xff and ether[13]=0x09表示只抓来自MDU的数据包。
Ether[34]和ether[35]为发送端口的16进制表示。
Ether[36]和ether[37]为接收端口的16进制表示。
-s表示抓下完整的RTP包,这样可以分析TS流.
mstu2eth2_2e5a_head.cap为保存抓包结果的文件,会生成在当前目录下。
5.2.4解码
用WireShark打开结果文件并解码为IP,然后再解码为RTP。
方法如下:
随意右键一个数据包:
5.2.5查看丢包率
用WireShark查看是否丢包
注意,如果丢包率显示为负数,需要在下一节(4.2.6)来分析是否丢包。
5.2.6分析丢包
如果丢包率为非0,则要看是丢了哪些数据包:
上图中,”Next non-OK”会跳到下次丢包的序号。
关于负值的丢包率:
如下图所所。
这通常是tcpdump抓包工具因误抓重复序号包造成的丢包假像。
此时,要把Lost RTP packets和Sequence errors相加,如果为非0值,则是真丢包,否则不是丢包。
如上图中,-85+85=0,则表示实际上没有丢包。
事实上,可以通过如下方法确认是否是重复序号包造成的统计失误:
6附录
6.1抓包指定域
#tcpdump -i eth3 ether[34]=0x3e and ether[35]=0x3e and ether[60]=0x80 00或者10:普通帧
20或者30: 关键帧首包
40或者50: 关键帧中间包
80或者90: 关键帧尾包
#tcpdump -i eth3 ether[36]=0x3e and ether[37]=0x38 and ether[42]=0x47 0x47 UDP
0x80 标准RTP
0x90 扩展RTP。