TCPDUMP中文手册的手册_第1页
TCPDUMP中文手册的手册_第2页
TCPDUMP中文手册的手册_第3页
TCPDUMP中文手册的手册_第4页
TCPDUMP中文手册的手册_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

tcpdumptcpdumptcpdump[-adeflnNOpqStvx][-c数量][-F文件名][-i网络接口][-r文件名][-ssnaplen][-T类型][-w文件名][表达式]描述(DESCRIPTION)TcpdumpexpressionSunOSnitbpftcpdump,你必需有/dev/nit/dev/bpf*的读访问权限.Solarisdlpi:你必需有网络仿真设备(networkpseudodevice),如/dev/leHP-UXdlpi:你必需是root,rootuidIRIXsnoop:你必需root,root的设置uid程序.对于Linuxroot,或者把它安装成rootuidUltrixDigitalUNIX:一旦超级用户使用pfconfig(8promiscuous(promiscuous-mode)tcpdump.对于BSD:你必需有/dev/bpf*的读访问权限.参数-a-d参数-a-d-dd-ddd-e-f-l-n-t-v-vv-c-F-i-r-w介绍将网络地址和播送地址转变成名字将匹配信息包的代码以人们能够理解的汇编格式给出c将匹配信息包的代码以十进制的形式给出在输出行打印出数据链路层的头部信息Internet使标准输出变为缓冲行形式不把网络地址转换成名字在输出的每一行不打印时间戳ipttl输出具体的报文信息在收到指定的包的数目后,tcpdump就会停顿从指定的文件中读取表达式,无视其它的表达式指定监听的网络接口从指定的文件中读取包(这些包一般通过-w选项产生)直接将包写入文件中,并不分析和打印出来-T-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc〔远程过程调用〕snmp〔简洁网络治理协议;〕tcpdump表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,假设一个报文满足表达式的条件,则这个报文将会被捕获。假设没有给出任何条件,则网络上全部的信息包将会被截获。在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port,例如host,指明netport23指明端口号是23host.其次种是确定传输方向的关键字,主要包括src,dst,dstorsrc,dstandsrcsrc,ip,dstnet。假设没有指srcordstfddi,ip,arp,rarp,tcp,udpFddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是“ether“的别名,fddi和ether具有类似的源地fddiether其他的几个关键字就是指明白监听的包的协议内容。假设没有指定任何协议,则tcpdump将会监听全部协议的信息包。除了这三种类型的关键字之外,其他重要的关键字如下:gateway,broadcast,less,greater,还有三种规律运算,取非运算是”not””!”,与运算是”and”,”&&”;或运算是”or”,”||”;这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。的主机收到的和发出的全部的数据包:#tcpdumphost(2)〔。在命令行中使用括号时,肯定要#tcpdumphostand\(or\)之外全部主机通信的ip#tcpdumpiphostand!telnet#tcpdumptcpport23hosttcpdump的输出结果介绍tcpdump数据链路层头信息#tcpdump-ehosticeicelinuxMAC0:90:27:58:AF:1AH219SOLARICSUN工作站,它的MAC8:0:20:79:B:46;上一条命令的输出结果如下所示:21:50:12.847509eth0<8:0:20:79:5b:460:90:27:58:af:1aip60:h219.33357>ice.telnet0:0(0)ack22535win8760(DF)分析:21:50:12847509ID,eth0eth0承受该数据包,eth0>表示从网络接口设备发送数据包,8:0:20:79:5b:46H219MACH2190:90:27:58:af:1aICEMACICE.ipIP,60是数据包的长度,h219.33357>ice.telnetH21933357ICETELNET(23)端口.ack22535222535win87608760.ARPTCPDUMP使用命令#tcpdumparp得到的输出结果是:22:32:42.802509eth0>arpwho-hasroutetellice(0:90:27:58:af:1a)22:32:42.802902eth0<arpreplyrouteis-at0:90:27:12:10:66(0:90:27:58:af:1a)分析:22:32:42802509IDeth0>说明从主机发出该数据包,arpARP恳求包,who-hasroutetelliceICE恳求主机ROUTEMAC0:90:27:58:af:1aICEMACTCPTCPDUMPTCPsrc>dst:flagsdata-seqnoackwindowurgentoptionssrc>dst:说明从源地址到目的地址,flagsTCP,SSYNF(FIN),P(PUSH),R(RST)data-seqnoack望的挨次号,windowurgentOptionsUDPTCPDUMPUDProute.port1>ice.port2:udplenthUDPROUTEport1端口发出的一个UDP数据包到主机ICEport2UDP,包的长度是lenthTCPDUMP名称(NAME)tcpdump-总览(SYNOPSIS)tcpdump[-adeflnNOpqStvx][-ccount][-Ffile][-iinterface][-rfile][-ssnaplen][-Ttype][-wfile][expression]描述(DESCRIPTION)Tcpdumpexpression的报头.对于SunOS的nit或bpf界面:要运行tcpdump,/dev/nit或/dev/bpf*对于Solaris的dlpi:(networkpseudodevice),如/dev/le的读访问权限.对于HP-UX的dlpi:root,root的设置uid程序.对于IRIX的snoop:root,root的设置uidLinux:root,root的设置uid对于Ultrix和DigitalUNIX:pfconfig(8)开放了promiscuous操作模式(promiscuous-mode),tcpdump.对于BSD:/dev/bpf*选项(OPTIONS)-a-c当收到count报文后退出.-d把编译好的报文匹配模板(packet-matchingcode)翻译成可读形式,传往标准输出,然后退出.-dd把报文匹配模板(packet-matchingcode)以C-ddd把报文匹配模板(packet-matchingcode)以十进制数形式输出(前面加上总数).-e每行都显示链路层报头.-f用数字形式显示”外部的”互联网地址,而不是字符形式(这个选项用来绕开脑壳坏光的SUN-F把file的内容用作过滤表达式.无视命令行上的表达式.-i监听interface.,tcpdump在系统的接口清单中,查找号码最小,已经配置好的接口(loopback除外).选中的时候会中断连接.-l行缓冲标准输出.可用于捕获数据的同时查看数据.例如,``tcpdump-l|teedat””or``tcpdump-l>dat&tail-fdat””.-n别把地址转换成名字(就是说,主机地址,端口号等)-N不显示主机名字中的域名局部.例如,假设使用这个选项,tcpdump只显示``nic””,``””.-Obug-ppromiscuous模式.留意,接口有可能因其他缘由而处于promiscuous模式;因此,”-p”`etherhost{local-hw-addr}或etherbroadcast”-q快速输出.显示较少的协议信息,输出行会短一点点.-r从file中读入数据报(文件是用-w选项创立的).假设file``-””,-ssnaplen68(SunOS的NIT96).68IP,ICMP,TCP和UDP,但是有可能截掉名字效劳器和NFS报文的协议信息(见下面).输出时假设指定``[|proto]””,tcpdump可以指出那些捕获量过小的数据报,这里的proto是截断发生处的协议层名称.留意,承受更大的捕获范围既增加了处理报文的时间,又相应的削减了报文的缓冲数量,可能导致报文的丢失.你应当把snaplen-T把通过“expression“type.:rpc(RemoteProcedureCall),rtp(实时应用协议Real-TimeApplicationsprotocol),rtcp(Real-TimeApplicationscontrolprotocol),vat(可视音频工具VisualAudioTool),和wb(分布式白板distributedWhiteBoard).-STCP-t制止显示时戳标志.-tt显示未格式化的时戳标志.-vIP-vvNFS应答报文的附加域.-wfile,-rfile``-””,-x以16snaplen个字节.expression用来选择要转储的数据报.假设没有指定expression,expression为`true”expression一个或多个原语(primitive)组成.原语通常由一个标识(id,个修饰子(qualifier)typehost,net和port.如,`hostfoo”,`net128.3”,`port20”.host.dir方向修饰子指出相对于标识的传输方向(数据是传入还是传出标识).可以使用的方向有src,dst,srcordst和srcanddst.`srcfoo”,`dstnet128.3”,`srcordstportftp-data”.假设不指定方向修饰子,就使用缺省的srcordst.对于`nullslip之类的点到点协议),用inbound和outbound传输方向.proto:ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp和udp.,`ethersrcfoo”,`arpnet128.3”,`tcpport21”.假设不指定协议修饰子,就使用所有符合类型的协议.例如,`srcfoo”`(ip或arp或rarp)srcfoo”(),`netbar”`(ip或arp或rarp)netbar”,`port53”`(tcp或udp)port53”.[`fddi”`ether”``用在指定网络接口上的数据链路层.””FDDI报头包含类似于以太协议的源目地址,而且通常包含类似于以太协议的报文类型,因此你可以过滤FDDI域,就象分析以太协议一样.FDDI作为上述的补充,有一些特别的`原语”关键字,它们不同于上面的模式:gateway,broadcast,less,greater和数学表达式.这些在后面有表达.更简单的过滤器表达式可以通过and,or和not,`hostfooandnotportftpandnotportftp-data”.,`tcpdstportftporftp-dataordomain”实际上就是`tcpdstportftportcpdstportftp-dataortcpdstportdomain”.允许的原语有:dsthosthostIPhost,.host既可以是地址,也可以是主机名.srchosthostIPhost,hosthostIPhost,hostip,arp,或rarp关键字做前缀,就象:iphosthost它等价于:etherproto\ipandhosthost假设hostIP地址的主机名,它的每个地址都会被查验.etherdstehost假设报文的以太目的地址是ehost,.Ehost既可以是名字(/etc/ethers里有),也可以是数字(有关ethers(3N)).ethersrcehost假设报文的以太源地址是ehost,etherhostehost假设报文的以太源地址或以太目的地址是ehost,gatewayhosthost当做网关,则规律为真.也就是说,报文的以太源或目的地址是host,IP是host.host必需是个主机名,而且必需存在/etc/hosts和/etc/ethers中.(一个等价的表达式是etherhostehostandnothosthost对于host/ehost,dstnetnetIPnet,.net既可以是名字(存在/etc/networks中),也可以是网络号.(详见networks(4)).srcnetnetIPnet,netnetIPnet,netnetmaskmask假设IP地址匹配指定网络掩码(netmask)的netsrc或dstnetnet/len假设IPnet,len.src或dstdstportport假设报文是ip/tcp或ip/udp,port,.port是一个数字,也可以是/etc/services中说明过的名字(参看tcp(4P)和udp(4P)).名字,则只检查端口号(例如,dstport513将显示tcp/login的数据和udp/who的数据,而portdomain将显示tcp/domain和udp/domainsrcportport假设报文的源端口号是port,portport假设报文的源端口或目的端口是port,tcp或udp前缀,就象:tcpsrcportportport的TCPlesslength假设报文的长度小于等于length,len<=length.greaterlength假设报文的长度大于等于length,len>=length.ipprotoprotocolIP数据报(参见ip(4P)),protocol,.Protocol可以是数字,也可以是以下名称中的一个:icmp,igrp,udp,nd,或tcptcp,udp,和icmp用反斜杠(\)C-shell中应当是\\.etherbroadcastether是可选的.ipbroadcastIP.Tcpdump01ethermulticast假设报文是以太多目传送报文(multicast),ether是可选的.这实际上是`ether[0]&1!=0”的简写.ipmulticastIP多目传送报文,则规律为真.etherprotoprotocol假设报文协议属于以太类型的protocol,.Protocolip,arp,rarp.留意这些标识符也是关键字,所以必需用反斜杠(\)FDDI(,`fddiprotocolarp”),802.2(LLC)FDDI,Tcpdump假设全部的FDDILLCLLCSNAPdecnetsrchost假设DECNET的源地址是host,``10.123””,或者是DECNET主机名.[只有DECNET的Ultrix系统支持DECNETdecnetdsthost假设DECNEThost,decnethosthost假设DECNEThost,ip,arp,rarp,decnet是:etherprotop的简写形式,其中p为上述协议的一种.lat,moprc,mopdl是:etherprotop的简写形式,其中ptcpdump目前不知道如何分析这些协议.tcp,udp,icmp是:ipprotop的简写形式,其中p为上述协议的一种.exprrelopexpr假设这个关系成立,则规律为真,其中relop,expr是数学表达式,由常整数(标准C形式),一般的二进制运算符[+,-,*,/,&,|],数据,使用下面的语法:proto[expr:size]Proto是ether,fddi,ip,arp,rarp,tcp,udp,oricmp之一,同时也指出了下标操作的协议层.expr位的偏移量,该偏移量相对于指定的协议层.Size1,2,4,1len例如,`ether[0]&1!=0”捕获全部的多目传送报文.表达式`ip[0]&0xf!=5”IP`ip[6:2]&0x1fff=0”0tcp和udp,tcp[0]肯定是TCPIP原语可以用下述方法结合使用:园括弧括起来的原语和操作符(园括弧在Shell中有专用,所以必需转义).取反操作(`!”or`not”).连结操作(`&&”or`and”).或操作(`||”or`or”).取反操作有最高优先级.或操作和连结操作有一样的优先级,运算时从左到右结合.留意连结操作需要显式的andnothostvsandace作为nothostvsandhostace的简写形式,不应当和not(hostvsorace)混淆.表达式参数可以作为单个参数传给tcpdump,也可以作为复合参数,后者更便利一些.一般说来,假设表达式包含Shell(metacharacter),例如(EXAMPLES)sundown的报文:tcpdumphostsundown显示helios和主机hot,ace之间的报文传送:tcpdumphostheliosand\(hotorace\)显示aceheliosIPtcpdumpiphostaceandnotheliosBerkeley的主机之间的网络数据:tcpdumpnetucb-ethersnup的ftpshelltcpdump”gatewaysnupand(portftporftp-data)”把数据发往你的本地网络).tcpdumpipandnotnetlocalnetTCP(SYN和FINtcpdump”tcp[13]&3!=0andnotsrcanddstnetlocalnet”snup576字节的IPtcpdump”gatewaysnupandip[2:2]>576”显示IP播送或多目传送的数据报,这些报文不是通过以太网的播送或多目传送形式传送的:tcpdump”ether[0]&1=0andip[16]>=224”显示全部不是回响恳求/ICMPpingtcpdump”icmp[0]!=8andicmp[0]!=0“输出格式(OUTPUTFORMAT)tcpdump的输出格式取决于协议.下面的描述给出大多数格式的简要说明和范例.链路层报头(LinkLevelHeaders)假设给出”-e”选项就显示链路层报头.在以太网上,显示报文的源目地址,协议和报文长度.在FDDI网络上,”-e”tcpdump显示出`帧掌握(framecontrol)”域,源目地址和报文长度.(`帧掌握”域IP`07;例如,`async4”.802.2规律链路掌握(LLC)ISOSNAPLLC报头.(留意:以下描述中假设你生疏RFC-1144中说明的SLIP在SLIP链路上,tcpdump显示出方向指示(``I””指inbound,``O””指outbound),示的是报文类型.有三种类型ip,utcp和ctcp.ipTCP后面显示连接标识.假设报文是压缩过的,就显示出编码的报头.特别情形以*S+n*SA+n的形式显示,这里的n0U(urgentpointer),W(window),A(ack),S(sequencenumber)和I(packetID)(+nor-n),另一个值(=n).最终显示报文中的数据总和,以及压缩报头的长度.例如,下面一行显示了一个传出的压缩的TCP报文,有一个隐含的连接标识;确认(ack)6,挨次号是49,ID6Octcp*A+6S+49I+63(6)ARP/RARPArp/rarp报文的输出显示恳求类型及其参数.输出格式倾向于能够自我解释.这里是一个简洁的例子,来自主机rtsg到主机csam”rlogin”arpwho-hascsamtellrtsgarpreplycsamis-atCSAMrtsgarp报文询问internet主机csam.Csam用它的以太地址作应答(这个例子中,以太地址是大写的,internet地址为小写).假设用tcpdump-n看上去要清楚一些:arpwho-hastell8arpreplyis-at02:07:01:00:01:c4假设用tcpdump-e,可以看到实际上第一个报文是播送,其次个报文是点到点的:RTSGBroadcast080664:arpwho-hascsamtellrtsgCSAMRTSG080664:arpreplycsamis-atCSAM这里第一个报文指出以太网源地址是RTSG,160806(ETHER_ARP),64TCP(留意:以下的描述中假设你生疏RFC-793中说明的TCPtcpdump都对你用处不大)tcp协议的输出格式是:src>dst:flagsdata-seqnoackwindowurgentoptionsSrc和dst是源目IP.Flags是S(SYN),F(FIN),P(PUSH)或R(RST)`.”(们的组合.Data-seqno).Ack是在这条连接上信源机期望下一个接收的字节的流序号(sequencenumber).Window.Urg报文内是`紧急(urgent)”Options是tcpSrc,dst和flagstcp报头内容,只输出有必要的局部.rtsgrlogin到主机csamrtsg.1023>csam.login:S768512:768512(0)win4096csam.login>rtsg.1023:S947648:947648(0)ack768513win4096rtsg.1023>csam.login:.ack1win4096rtsg.1023>csam.login:P1:2(1)ack1win4096csam.login>rtsg.1023:.ack2win4096rtsg.1023>csam.login:P2:21(19)ack1win4096csam.login>rtsg.1023:P1:2(1)ack21win4077csam.login>rtsg.1023:P2:3(1)ack21win4077urg1csam.login>rtsg.1023:P3:4(1)ack21win4077urg1rtsg的tcp1023向csam的login端口发送报文.SSYN768512,`first:last(nbytes)”,意思是`从流序号first到last,last,nbytes(piggy-backedack),4096段大小(max-segment-size)mss1024CsamrtsgSYN的捎带确认.然后Rtsg确认csam的SYN.`.”(1).tcpdump第一次觉察一个tcp会话时,它显示报文携带的流序号.在随后收到的报文里,它显示当前报文和最初那个报asrelativebytepositionsintheconversation”sdatastream(withthefirstdatabyteeachdirectionbeing`1”).`-S”选项能够转变这个特性,直接显示原始的流序号.在第六行,rtsg传给csam19220).PUSHcsamrtsg21,21socket的缓冲区内,由于csam19个字节.同时csam向rtsgcsamrtsg.tcpdump不能捕获到完整的TCP,tcpdump会尽可能的翻译已捕获的局部,然后显示``[|tcp]””,说明无法翻译其余局部.假设报头包含一个伪造的选项(onewithalengththat”seithertoosmallorbeyondtheendoftheheader),tcpdump 显示``[badopt]””并且不再翻译其他选项局部(由于它不行能推断出从哪儿开头).假设报头长度说明存在选项,但是IP数据报长度不够,不行能真的保存选项,tcpdump就显示``[badhdrlength]””.UDPUDPrwhoactinide.who>broadcast.who:udp84udpactinide的who端口发送到broadcast,Internet播送地址的who84某些UDP(RFC-1034/1035)和NFS的RPC(RFC-1050).UDP(NameServerRequests)(留意:以下的描述中假设你生疏RFC-1035说明的域名效劳协议.假设你不生疏这个协议,下面的内容就象是天书.)域名效劳恳求的格式是src>dst:idop?flagsqtypeqclassname(len)h2opolo.1538>helios.domain:3+A?.(37)主机h2opolo访问.关联的地址记录(qtype=A).`3”.`37UDP和IPQuery因此op域可以无视.假设op设置成其他什么东西,它应当显示在`3”`+”,qclass是一般的C_INqclass`A”Tcpdump会检查一些不规章状况,相应的结果作为补充域放在方括号内:假设某个查询包含答复,名字效劳或治理机构局部,就把ancount,nscount,或arcount`[na]”,`[nn]”`[nau]”,n假设在其次和第三字节中,任何一个答复位(AA,RA或rcode)`必需为零”的位被置位,就显示`[b2&3=x]”,x16UDP名字效劳答复的格式是src>dst:idoprcodeflagsa/n/autypeclassdata(len)helios.domain>h2opolo.1538:33/3/7A(273)helios.domain>h2opolo.1537:2NXDomain*0/1/0(97)第一个例子里,helios答复了h2opolo33,37治理构造记录.第一个答复纪录的类型是A(internet.273节,不包括UDP和IP报头.作为Aclass(C_IN)可以无视op(rcode(NoError).在其次个例子里,helios2的询问作出域名不存在(NXDomain)录,而且没有治理构造.`*”(authoritativeanswer).type,class和data.其他标志字符可以显示为`-”((RA))`|”((TC)).`问题”局部没有有效的内容,就显示`[nq]”.,68snaplen可能无法捕获到足够的报文内容.假设你确实在争论名字效劳的状况,可以使用-s.`-s128”NFSSunNFS(src.xid>dst.nfs:lenopargssrc.nfs>dst.xid:replystatlenopresultssushi.6709>wrl.nfs:112readlinkfh21,24/10.73165wrl.nfs>sushi.6709:replyok40readlink“../var“sushi.201b>wrl.nfs:144lookupfh9,74/4096.6878“xcolors“wrl.nfs>sushi.201b:replyok128lookupfh9,74/4134.3150在第一行,主机sushi向wrl6709112UDP和IP报头.在文件句柄(fh)21,24/10.731657119上执行readlink(,i(generationnumber).)Wrl答复`ok”和连接的内容.在第三行,sushi恳求wrl9,74/4096.6878中查找`xcolors”.格式应当是可以自我说明的.给出-v(verbose)选项可以显示附加信息.例如:sushi.1372a>wrl.nfs:148readfh21,11/12.1958192bytes@24576wrl.nfs>sushi.1372a:replyok1472readREG100664ids417/0sz29388(-v同时使它显示IPTTL,ID,,sushi恳求wrl21,11/12.195245768192.Wrl`ok”;1472字节(其余数据在后续的分片中传过来,但由于这些分片里没有NFS甚至UDP所使用的过滤器表达式,有可能不显示).-v选项还会显示一些文件属性(它们作为文件数据的附带局部传回来):文件类型(一般文件``REG””),),uid和gid,假设再给一个-v(-vv),留意NFSsnaplen,`-s192”NFSRPCtcpdump保存有``近来的””恳求记录,依据交易号匹配应答报文.假设KIPAppletalk(UDP上的DDP)AppletalkDDP报文封装在UDPDDPUDP报头信息).文件/etc/s用来把appletalk网络和节点号翻译成名字.这个文件的行格式是numbername1.254ether16.1icsd-net1.254.110aceappletalk的网络名称.第三行给出某个主机的名字(主机和网络依据第三组数字区分-网络号肯定tab)./etc/s文件可以包含空行或注释行(以`#”Appletalknet.host.port>icsd-net.112.220office.2>icsd-net.112.220jssmag.149.235>icsd-net.2(假设不存在/etc/s,或者里面缺少有效工程,就以数字形式显示地址.)第一个例子里,网络144.1209节点的NBP

温馨提示

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

评论

0/150

提交评论