通常,在分析客户端和服务器之间的网络交互时,很多情况下需要捕获数据包,分析客户端和服务器之间的消息。
Win中一般可以用WireShark来捕获包,但是Linux中需要tcpdump。以下是使用tcpdump的一些说明。
Tcpdump可以截取网络传输的数据包的“头”进行分析。
它支持对网络层、协议、主机、网络或端口进行过滤,并提供逻辑语句(如和、或)来帮助您过滤无用信息。
一、基本用途
关键字构成类型:
第一个是关于类型的关键词,主要包括主机、网络和端口。例如,主机210.27.48.2表示210.27.48.2是主机,网络202.0.0.0表示202.0.0是网络地址,端口23表示端口号为23。如果未指定类型,默认类型为主机。
第二,决定传播方向的关键词主要有src、dst、dst或src、dst、src,它们表示传播方向。例如,src 210.27.48.2表示ip数据包中的源地址是210.27.48.2,dstnet202.0.0.0表示目的网络地址是202.0.0.0。如果没有方向关键字,默认为src或dst关键字。
第三是协议的关键词,主要包括fddi、ip、arp、rarp、tcp、udp等类型。Fddi是指fddi(分布式光纤数据接口网络)上的特定网络协议。其实是“以太”的别名。fddi和ether具有相似的源地址和目的地址,因此FDDI协议数据包可以作为ether数据包进行处理和分析。其他关键字表示受监控数据包的协议内容。如果没有指定协议,tcpdump将侦听所有协议的数据包。
违约
工具
监控流经第一个网络节点的所有数据包。
监控指定的网络接口
tcpdump -i etp
监控指定主机的数据包
tcpdump主机cas1
监控进出cas1的所有数据包
tcpdump主机10.10.10.1
当然也可以指定IP
tcpdump -i eth0 src主机cas1
拦截主机cas1发送的所有数据
tcpdump -i eth0 dst主机cas1
监控发送到主机cas1的所有数据
指定端口
tcpdump tcp端口23和主机cas1
获取与主机cas1交互的所有telnet数据包
tcpdump udp端口123
监控本机UDP的ntp服务端口
tcpdump -i eth0 -vnn src主机10.10.10.122而非端口22
获取源ip为10.10.10.122且端口不是22的数据包
tcpdump -i eth0 -vnn ( src主机10.10.10.2和dst端口22)或(src主机10.10.10.65和dst端口80)
tcpdump -i eth0 -vnn 'src主机10.10.10.2和dst端口22 '或' src主机10.10.10.65和dst端口80 '
抓取源ip为10.10.10.2,目的端口为22,或者源ip为10.10.10.65,目的端口为80的数据包。
指定一个网段
tcpdump-I et h0-vnn net 10 . 10 . 10 . 0/24
获取包含10.10.10.0网段的数据包
抓取icmp协议数据包
tcpdump -i eth0 -vnn icmp
获取消息并将其保存到文件中
tcpdump–I eth 0-vnn-w/tmp/fil 1-c 100
将捕获的数据包记录保存在/tmp/fill文件中,捕获100个数据包后退出程序。
TCP dump–I eth 0-vnn-r/tmp/fil 1 TCP
从/tmp/fill记录中读取tcp数据包
tcpdump–I eth 0-vnn-r/tmp/fil 1主机10.10.10.58
从/tmp/fill记录中读取包含10.10.10.58的数据包
二.参数的详细说明:
[构成动植物的古名或拉丁化的现代名]
将网络地址和广播地址转换成名称
-d
匹配包的代码以人们能够理解的汇编格式给出
-dd
匹配信息包的代码以C语言程序段的形式给出
-ddd
以十进制形式给出匹配包的代码
-e
在输出行打印数据链路层的报头信息,包括源mac和目的mac,以及网络层的协议
-f
以数字的形式打印出外部互联网地址
-l
制作标准输出缓冲线形式
同-EN
指定将每个被监控数据包中的域名转换为IP地址后显示,网络地址不转换为名称
-nn
指定将每个受监控数据包中的域名转换为IP,并将端口从应用程序名称转换为端口号后显示
相当于-ED
不要在输出的每一行打印时间戳
-v
输出一个稍微详细的信息,例如,ttl和服务类型信息可以包含在ip包中
-vv
输出详细的消息信息
-c
Tcpdump在收到指定数量的数据包后停止
-F
从指定文件中读取表达式,忽略其他表达式
[构成来自拉丁语、结尾为-us的名词的复数]
指定要监听的网络接口
-p
将网卡设置为非混杂模式,不能用于主机或广播
-P
指定要抓取的包是传入包还是传出包。可以给出的值有“in”、“out”和“inout”,默认值为“inout”。
-r
从指定文件中读取包(这些包通常由-w选项生成)
-w
把包直接写到文件里,不要分析打印出来
相当于-ED
被监控的数据包被直接解释为指定类型的消息,常见类型有rpc(远程过程调用)和snmp(简单网络管理协议)
[加在以-u结尾的法语词源的名词之后构成复数]
需要按原样显示协议头和包内容(tcpdump会以十六进制和ASCII显示),这是协议分析中的绝对工具。
-XX
tcpdump在分析和打印时,会打印出每个数据包的报头数据,同时会以十六进制和ASCII码打印出每个数据包的数据,包括数据链路层的报头,对于分析一些新的协议数据包非常方便。
1.《tcpip详解 tcpdump的使用以及参数详解》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《tcpip详解 tcpdump的使用以及参数详解》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1077131.html