Linux网络协议分析工具tcpdump和tshark用法_第1页
Linux网络协议分析工具tcpdump和tshark用法_第2页
Linux网络协议分析工具tcpdump和tshark用法_第3页
Linux网络协议分析工具tcpdump和tshark用法_第4页
Linux网络协议分析工具tcpdump和tshark用法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、For personal use only in study and research; not for commercial useLinux网络协议分析工具 tcpdump 和tshark用法Tcpdump是网络协议分析的基本工具。tshark是大名鼎鼎的开源网络 协议分析工具 wireshark (原名叫ethereal)的命令行版本,wireshark 可对多达千余种网络协议进行解码分析。Wireshark和tcpdump均使用libpcap库(参见libpcap编程教程)进行网络截包。TCPDUMP详细manpage参见tcpdump网站。基本用法 Tcpdump的参数基本分 为两块

2、:选项(options)和过滤器表达式(filter_expression) Tcpdump是网络协议分析的基本工具。tshark是大名鼎鼎的开源网络 协议分析wireshark (原名叫ethereal)的命令行版本,wireshark可 对多达千余种网络协议进行解码分析。Wireshark和tcpdump均使用libpcap库(参见libpcap编程教程)进行网络截包。TCPDUM蒔细 man page参见tcpdump网站。基本用法Tcpdump的参数基本分为两 块:选项(options)和过滤器表达式(filter_expression)。# tcpdump options filte

3、r_expression例女口 # tcpdump -c 100 -i eth0 -w log tcp dst port 50000其中options部分参数:-c 100指定截取的包的数量-i eth0 指定监听哪个网络端口 -w log输出到名为log的文件中(libpcap格 式)filter_expression参数为tcp dst port 50000,即只监听目标端口为 50000的tcp包。更多的例子:/*监视目标地址为除内网地址(*/# tcpdump dst net not /*监视除 HTTP浏览(端口 80/8080)、SSH(22、POP3( 110)之外的流量,注意在

4、括号(之前添加转义符, -n和-nn的解 释见随后 */# tcpdump -n -nn port not (www or 22 or 110) 或 # tcpdump -n -nn port ! (www or 22 or 110)/* 监视源 MAC 地址为 00:50:04:BA: 9B的包 */# tcpdump ether src 00:50:04:BA: 9B/* 监视源 主机为 */# tcpdump src host and dst port not telnet ip icmp arp rarp 和 tcp、 udp、 icmp 这些选项等都要放到第一个参数的位置,用来过 滤

5、数据报的类型。例如:# tcpdump ip src只过滤数据-链路层上 的IP报头# tcpdump udp and src host /只过滤源主机TcpDump提供 了很多 options 参数来让我们选择如何处理得到的数据, 如下所示: -l 将数据重定向。 如 tcpdump -l tcpcap.txt 将得到的数据存入 tcpcap.txt文件中。-n不进行IP地址到主机名的转换。如果不使用这 一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 v ntc9.1165,使用-n后变成 了: eth0 v -nn不进行端口名称的转换。

6、上面这条信息使用-nn 后就变成了: eth0 v ntc9.1165 -N 不打印出默认的域名。 还 是这条信息 -N 后就是: eth0 v ntc9.1165 router.telnet。 -O 不进 行匹配代码的优化。-t不打印UNIX时间戳,也就是不显示时间。-tt 打印原始的、未格式化过的时间。 -v 详细的输出,也就比普通的多 了个TTL和服务类型。参数详解tcpdump采用命令行方式,它的命令 格式为: tcpdump -adeflnNOpqStvx -c 数量 -F 文件名 -i 网络 接口 -r 文件名 -s snaplen -T 类型 -w 文件名 表达式 -a将网络地址

7、和广播地址转变成名字; -d 将匹配信息包的代码 以人们能够理解的汇编格式给出; -dd 将匹配信息包的代码以 c 语言程序段的格式给出; -ddd 将匹配信息包的代码以十进制的 形式给出; -e 在输出行打印出数据链路层的头部信息;-f将外部的 Internet 地址以数字的形式打印出来; -l 使标准输出 变为缓冲行形式; -n 不把网络地址转换成名字; -t在输出的每一行不打印时间戳; -v 输出一个稍微详细的信息, 例如在 ip 包中可以包括 ttl 和服务类型的信息; -vv 输出详细 的报文信息; -c 在收到指定的包的数目后, tcpdump 就会停 止; -F 从指定的文件中读

8、取表达式,忽略其它的表达式; -i指定监听的网络接口; -r 从指定的文件中读取包 (这些包一般 通过-w选项产生);-w直接将包写入文件中,并不分析和打印出来; -T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp (简单网络管理协议; ) tcpdump 的表达式介绍 表达式是一个正则表达式, tcpdump 利用它作为过滤报文的条件, 如果一个报文满足表达式的条 件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有 的信息包将会被截获。 在表达式中一般如下几种类型的关键字, 一种 是关于类型的关键字, 主要包括 host, net, port

9、, 例如 host ,指明 , net 指明, port 23 指明端口号是 23。如果没有指定类型, 缺省的类 型是host 第二种是确定传输方向的关键字,主要包括src , dst ,dst orsrc, dst and src 这, 些关键字指明了传输的方向。举例说明,src ,指明ip 包中源地址是 , dst net 指明目的网络地址是 。如果没 有指明方向关键字,则缺省是 src or dst 关键字。第三种是协议的关 键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI分 布式光纤数据接口网络 )上的特定的网络协

10、议,实际上它是ether 的别名, fddi 和 ether 具有类似的源地址和目的地址,所以可以将 fddi 协议包当作 ether 的包进行处理和分析。其他的几个关键字就是指明 了监听的包的协议内容。 如果没有指定任何协议, 则 tcpdump 将会监 听所有协议的信息包。 除了这三种类型的关键字之外, 其他重要的关 键字如下:gateway, broadcast,less,greate还有三种逻辑运算,取非运 算是not !,与运算是and,&;或运算 是or ,|;这些关键字可 以组合起来构成强大的组合条件来满足人们的需要, 下面举几个例子 来 说明。 (1) 想要截获所有的主机收到的

11、和发出的所有的数据包: #tcpdump host (2) 想要截获主机 和主机 或,使用命令:(在命 令行中适用括号时,一定要 #tcpdump host and ( or )(3)如果想要获取主机,使用命令: #tcpdump ip host and ! (4)如果想要 获取主机,使用如下命令: #tcpdump tcp port 23 host tcpdump 的输 出结果介绍下面我们介绍几种典型的 tcpdump 命令的输出信息 (1) 数 据链路层头信息使用命令 #tcpdump -e host iceice 是一台装有 linux 的主机,她的 MAC地址是0: 90: 27: 5

12、8: AF: 1AH219是一台装有 SOLAR 1(的 SUN工作站,它的 MAC地址是 8: 0: 20: 79: 5B: 46;上 一 条 命 令 的 输 出 结 果 如 下 所示 : 21:50:12.847509 eth0 ice.telnet 0:0(0)ack 22535 win 8760 (DF)分析:21: 50: 12是显示的时间,847509是 ID 号, eth0 表示从网 络接口设备发送数据包,8:0:20:79:5b:46是主机H219的MAC地址,它 表明是从源地址 H219发来的数据包.0:90:27:58:af:1a是主机ICE的 MAC地址,表示该数据包的目

13、的地址是ICE . ip是表明该数据包是IP 数据包,60 是数据包的长度 , h219.33357 ice.telnet 表明该数据包是 从主机H219的33357端口发往主机ICE的TELNET(23端口 . ack 22535 表明对序列号是 222535的包进行响应 . win 8760表明发送窗口的大小 是8760.(2) ARP包的TCPDUMP输出信息使用命令#tcpdump arp得到的 输出结果是: 22:32:42.802509 eth0 arp who-has route tell ice (0:90:27:58:af:1a)22:32:42.802902 eth0 表明

14、从主机发出该数据包,arp表明是ARP请求包,who-has route tell ice表明是主机ICE请求主机ROUTE的 MAC地址。 0:90:27:58:af:1a是主机ICE的MAC地址。(3) TCP包的输出信息用 TCPDUMP捕获的 TCP包的一般输出信息是:src dst: flags data-seqno ack win dow urge nt opti on ssrc dst:表明从源地址至 U目的地址 ,flags 是 TCP包中的标志信息,S是SYN标志,F (FIN), P (PUSH) , R (RST)没有 标记);data-seqno是数据包中的数据的顺序号

15、,ack是下次期望的顺序 号, window 是接收缓存的窗口大小 , urgent 表明数据包中是否有紧急 指针.Options是选项.(4) UDP包的输出信息用 TCPDUMPf甫获的UDP 包的一般输出信息是: route.port1 ice.port2: udp lenthUDP 十分简单, 上面的输出行表明从主机 ROUTE的portl端口发出的一个UDP数据 包到主机ICE的port2端口,类型是UDP,包的长度是lenthTshark详 细参数参见 tshark 的 manpage。/ 列出可监听流量的网络接口列表。 tshark 使用 1,2,.等数字来标识 eth0,eth

16、1.# tshark -D/ 监听接口 eth0 上的 UDP端口为 1234 的流量# tshark -f udp port 1234 -i Itshark 的强 悍之处在于对协议进行完全解码,甚至对分片的TCP包进行重组再行 解码,例如监听接口 ethO上目标端口为80的http流量,并将http 请求头的 host 和 location 打印 # tshark -f dst port 80 -T fields -e http.host -e http.location -i 1 其中 -f 参数指定过滤表达式(即等同 tcpdump 的 filter_expression)-T fiel

17、ds 指定屏幕输出信息类型为指定 的协议字段(用-e添加指定字段),仅在wireshark的-i 1为指定监听 的网络接口为1号/监听http流量,仅过滤GET请求,监听10秒钟, 打印出 HTTP HOS和 URLc:Program FilesWiresharktshark.exe -i 4 -n -f tcp(tcp12:1 & 0xf0) 2):4 = 0x -T fields -e http.host -e -a duration:10For personal use only in study and research; not for commercial use仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur f u r den pers?nlichen f u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论