Sun
您当前的位置: www.6460.com > www.d197.com >

tcpdump 会打印每个包的头部数据

浏览次数: | 时间:2019-11-04

  起首我们留意一下,根基上tcpdump总的的输出格局为:系统时间 来历从机.端口 方针从机.端口 数据包参数

  此时间戳的精度取内核时间精度分歧,反映的是内核第一次看到对应数据包的时间(nt: saw, 即可对该数据包进行操做).

  若是想要获取从机10.1.1.94除了和从机10.1.1.166之外所有从机通信的ip包,利用号令:

  打印所有来自端口80的HTTP HTTP数据包,即仅打印包含数据的数据包,而不打印例如SYN和FIN数据包以及ACK数据包。(IPv6是留给读者的一个。)

  -c count tcpdump将正在接遭到count个数据包撤退退却出. -C file-size (nt: 此选项用于共同-w file 选项利用) 该选项使得tcpdump 正在把原始数据包间接保留到文件中之前, 查抄此文件大小能否跨越file-size. 若是跨越了, 将封闭此文件,另创一个文件继续用于原始数据包的记实. 新建立的文件名取-w 选项指定的文件名分歧, 但文件名后多了一个数字.该数字会从1起头跟着新建立文件的增加而添加. file-size的单元是百万字节(nt: 这里指1,000,000个字节,并非1,048,576个字节, 后者是以1024字节为1k, 1024k字节为1M计较所得, 即1M=1024 * 1024 = 1,048,576) -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 :secret,... 可通过: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 字符串体例表达. 若是以 0x 开首, 该密钥将以16进制体例读入. 该选项中ESP 的定义遵照RFC2406, 而不是 RFC1827. 而且, 此选项只是用来调试的, 不保举以实正在密钥(secret)来利用该选项, 由于如许不平安: 正在号令行中输入的secret 能够被其他人通过ps 等号令查看到. 除了以上的语法格局(nt: 指:secret), 还能够正在后面添加一个语法输入文件名字供tcpdump 利用(nt:即把:secret,... 中...换成一个语法文件名). 此文件正在接遭到第一个ESP包时会打开此文件, 所以最好此时把付与tcpdump 的一些打消(nt: 可理解为, 如许防备之后, 当该文件为恶意编写时,不至于形成过大损害). -f 显示外部的IPv4 地址时(nt: foreign IPv4 addresses, 可理解为, 非本机ip地址), 采用数字体例而不是名字.(此选项是用来对于Sun公司的NIS办事器的缺陷(nt: NIS, 收集消息办事, tcpdump 显示外部地址的名字时会用到她供给的名称办事): 此NIS办事器正在查询非当地地址名字时,常常会陷入无尽的查询轮回). 因为对外部(foreign)IPv4地址的测试需要用到当地收集接口(nt: tcpdump 抓包时用到的接口)及其IPv4 地址和收集掩码. 若是此地址或收集掩码不成用, 或者此接口底子就没有设置响应收集地址和收集掩码(nt: linux 下的 any 收集接口就不需要设置地址和掩码, 不外此any接口能够收到系统中所有接口的数据包), 该选项不克不及一般工做. -F file 利用file 文件做为过滤前提表达式的输入, 此时号令行上的输入将被忽略. -i intece 指定tcpdump 需要的接口. 若是没有指定, tcpdump 会从系统接口列表中搜索编号最小的已设置装备摆设好的接口(不包罗 loopback 接口).一但找到第一个合适前提的接口, 搜索顿时竣事. 正在采用2.2版本或之后版本内核的Linux 操做系统上, any 这个虚拟收集接口可被用来领受所有收集接口上的数据包(nt: 这会包罗目标是该收集接口的, 也包罗目标不是该收集接口的). 需要留意的是若是实正在收集接口不克不及工做正在稠浊模式(promiscuous)下,则无法正在any这个虚拟的收集接口上抓取其数据包. 若是 -D 标记被指定, tcpdump会打印系统中的接口编号,而该编号就可用于此处的intece 参数. -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)和谈数据包的抓取. 具体SNMP 的工做道理未知, 另需弥补). 此选项可多次利用, 从而为tcpdump 拆载分歧的MIB 模块. -M secret 若是TCP 数据包(TCP segments)有TCP-MD5选项(正在RFC 2385有相关描述), 则为其摘要的验证指定一个公共的密钥secret. -n 不合错误地址(好比, 从机地址, 端标语)进行数字暗示到名字暗示的转换. -N 不打印出host 的域名部门. 好比, 若是设置了此选现, tcpdump 将会打印nic 而不是 nic.ddn.mil. -O 不启用进行包婚配时所用的优化代码. 当思疑某些bug是由优化代码惹起的, 此选项将很有用. -p 一般环境下, 把收集接口设置为非稠浊模式. 但必需留意 , 正在特殊环境下此收集接口仍是会以稠浊模式来工做; 从而, -p 的设取不设, 不克不及当做以下选现的代名词:ether host {local-hw-add} 或 ether broadcast(nt: 前者暗示只婚配以太网地址为host 的包, 后者暗示婚配以太网地址为地址的数据包). -q 快速(也许用恬静更好?)打印输出. 即打印很少的和谈相关消息, 从而输出行都比力简短. -R 设定tcpdump 对 ESP/AH 数据包的解析按照 RFC1825而不是RFC1829(nt: AH, 认证头, ESP, 平安负载封拆, 这两者会用正在IP包的平安传输机制中). 若是此选项被设置, tcpdump 将不会打印出中继域(nt: relay prevention field). 别的,因为ESP/AH规范中没有ESP/AH数据包必需具有和谈版本号域,所以tcpdump不克不及从收到的ESP/AH数据包中推导出和谈版本号. -r file 从文件file 中读取包数据. 若是file 字段为 - 符号, 则tcpdump 会从尺度输入中读取包数据. -S 打印TCP 数据包的挨次号时, 利用绝对的挨次号, 而不是相对的挨次号.(nt: 相对挨次号可理解为, 相对第一个TCP 包挨次号的差距,好比, 接管方收到第一个数据包的绝对挨次号为232323, 对于后来领受到的第2个,第3个数据包, tcpdump会打印其序列号为1, 2别离暗示取第一个数据包的差距为1 和 2. 而若是此时-S 选项被设置, 对于后来领受到的第2个, 第3个数据包会打印出其绝对挨次号:232324, 232325). -s snaplen 设置tcpdump的数据包抓取长度为snaplen, 若是不设置默认将会是68字节(而支撑收集接口分接头(nt: NIT, 上文已有描述,可搜刮收集接口分接头环节字找到那里)的SunOS系列操做系统中默认的也是最小值是96).68字节对于IP, ICMP(nt: Internet Control Message Protocol,因特网节制报文和谈), TCP 以及 UDP 和谈的报文已脚够, 但对于名称办事(nt: 可理解为dns, nis等办事), NFS办事相关的数据包会发生包截短. 若是发生包截短这种环境, tcpdump的响应打印输出行中会呈现[proto]的标记(proto 现实会显示为被截短的数据包的相关和谈条理). 需要留意的是, 采用长的抓取长度(nt: snaplen比力大), 会添加包的处置时间, 而且会削减tcpdump 可缓存的数据包的数量, 从而会导致数据包的丢失. 所以, 正在能抓取我们想要的包的前提下, 抓取长度越小越好.把snaplen 设置为0 意味着让tcpdump从动选择合适的长度来抓取数据包. -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 这么长,而且数据链层(好比, Ethernet层)有填凑数据, 则这些填凑数据也会被打印.(nt: so for link layers that pad, 未能跟尾理解和翻译, 需弥补 ) -xx tcpdump 会打印每个包的头部数据, 同时会以16进制打印出每个包的数据, 此中包罗数据链层的头部. -X 当阐发和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包罗毗连层的头部).这对于阐发一些新和谈的数据包很便利. - 当阐发和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据, 此中包罗数据链层的头部.这对于阐发一些新和谈的数据包很便利. -y datalinktype 设置tcpdump 只捕捉数据链层和谈类型是datalinktype的数据包 -Z user 使tcpdump 放弃本人的超等权限(若是以root用户启动tcpdump, tcpdump将会有超等用户权限), 并把当前tcpdump的用户ID设置为user, 组ID设置为user首要所属组的ID(nt: tcpdump 此处可理解为tcpdump 运转之后对应的历程) 此选项也可正在编译的时候被设置为默认打开.(nt: 此时user 的取值未知, 需弥补)

  (nt: 指把一个IP数据包分成多个IP数据包) 碎片IP数据包(nt: 即一个大的IP数据包破裂后生成的小IP数据包)有如下两种显示格局. (frag id:+) (frag id:) (第一种格局暗示, 此碎片之后还有后续碎片. 第二种格局暗示, 此碎片为最初一个碎片.) id 暗示破裂编号(nt: 从下文来看, 会为每个要破裂的大IP包分派一个破裂编号, 以便区分每个小碎片能否由统一数据包破裂而来). size 暗示此碎片的大小 , 不包含碎片头部数据. offset暗示此碎片所含数据正在原始整个IP包中的偏移((nt: 从下文来看, 一个IP数据包是做为一个全体被破裂的, 包罗头和数据, 而不只是数据被朋分). 每个碎片城市使tcpdump发生响应的输出打印. 第一个碎片包含了高层和谈的头数据(nt:从下文来看, 被破裂IP数据包中响应tcp头以及 IP头都放正在了第一个碎片中 ), 从而tcpdump会针对第一个碎片显示这些消息, 并接着显示此碎片本身的消息. 其后的一些碎片并不包含 高层和谈头消息, 从而只会正在显示源和目标之后显示碎片本身的消息. 以下有一个例子: 这是一个从arizona.edu 到lbl-rtsg.arpa 路过CSNET收集(nt: CSNET connection 可理解为成立正在CSNET 收集上的毗连)的ftp使用通信片段: arizona.ftp-data rtsg.1170: . 1024:1332(308) ack 1 win 4096 (frag 595a:328@0+) arizona rtsg: (frag 595a:204@328) rtsg.1170 arizona.ftp-data: . ack 1536 win 2560 有几点值得留意: 第一, 第二行的打印中, 地址后面没有端标语. 这是由于TCP和谈消息都放到了第一个碎片中, 当显示第二个碎片时, 我们无法晓得此碎片所对应TCP包的挨次号. 第二, 从第一行的消息中, 能够发觉arizona需要向rtsg发送308字节的用户数据, 而现实是, 响应IP包经破裂后会总生512字节 数据(第一个碎片包含308字节的数据, 第二个碎片包含204个字节的数据, 这跨越了308字节). 若是你正在查找数据包的挨次号空间中的 一些浮泛(nt: hole,浮泛, 指数据包之间的挨次号没有上下跟尾上), 512这个数据就脚够使你苍茫一阵(nt: 其实只需关心308就行, 不必关心破裂后的数据总量). 一个数据包(nt rt: 指IP数据包)若是带有非IP破裂标记, 则显示时会正在最初显示(DF).(nt: 意味着此IP包没有被破裂过).

  它支撑针对收集层、和谈、从机、收集或端口的过滤,并供给and、or、not等逻辑语句来帮帮你去掉无用的消息。

  打印所有通过网关snup(网关名字)的ftp数据包(留意, 表达式被单引号括起来了, 这能够防止shell对此中的括号进行错析)

  打印所有进入或分开“从机名”的数据包.或者是IP,即截获所有10.1.1.94 的从机收到的和发出的所有的数据包

  tcpdump 对截获的数据并没有进行完全解码,数据包内的大部门内容是利用十六进制的形式间接打印输出的。四女王娱乐网址,明显这晦气于阐发收集毛病,凡是的处理法子是先利用带-w参数的tcpdump 截获数据并保留到文件中,然后再利用其他法式(如Wireshark)进行解码阐发,当然也该当定义过滤法则。

  打印除echo request或者echo reply类型以外的ICMP数据包( 好比,需要打印所有非ping 法式发生的数据包时可用到此表达式 .

  (若是当地收集通过网干系到了另一收集, 则另一收集并不克不及算做当地收集.(nt: 此句翻译盘曲,需弥补).localnet 现实利用时要实正替代成当地收集的名字)

  打印所有源地址或方针地址是当地从机的IP数据包(要打印既不是来自当地从机也不是当地从机的流量)

  打印TCP会话中的的起头和竣事数据包, 而且数据包的源或目标不是当地收集上的从机.(nt: localnet, 现实利用时要实正替代成当地收集的名字))