您的位置:首页 > 运维架构 > Linux

Linux抓包

2015-10-13 08:52 543 查看
6. wireshark统计功能

6.1 包总数

主界面右下角



分组即包总数;已显示即过滤后的数量

6.2 图表

工具栏——统计——I/O图表



显示数据包随时间变化结果

设置显示的内容和方式



名称:勾选感兴趣项

过滤器:设置过滤条件,如data contains "\"mt\":2219"

样式:线形图、柱状图、点图等

加号:添加新项目

例如:显示包含"mt:2219"的数据包随时间变化图,线形图,蓝色



5. wireshark显示过滤

显示过滤即对已捕获的数据包进行筛选

5.1 内容过滤

格式:tcp|data contains "objstring"

说明:查找所有包含"objstring"的数据包

示例:

tcp contains "\"mt\":2219" 查找包含"mt":2219的数据包

data contains "55689_qq_com" 查找包含"55689_qq_com"的数据包

格式:tcp|data contains xx:xx:xx:xx

说明:查找含有指定字节片段的数据包

示例:

data contains 48:00:00:00:0d:f4:b1:12 查找含有如下字节片段的数据包0x48 0x00 0x00 0x00 0x0d 0xf4 0xb1 0x12

注意:内容过滤标准格式为tcp contains,因为data contains可能漏掉部分数据包

5.2 指定字段

格式:data[idx:len] == hex1:hex2:....:hexn

说明:要求数据字段从idx开始的len个字节,依次为hex1-hexn,idx从0开始,hex为十六进制值,不带0x前缀,且冒号前后不能有空格

示例:

data[33] == 01 数据的第34字节为0x01

data[0:4] == 48:35:32:31 数据的前四字节为0x48, 0x35, 0x32, 0x31

4. wireshark捕捉过滤

地址:ip.addr == xxx

端口:tcp.port == xx

传输方向:ip.src == xxx | ip.dst == xxx | tcp.srcport == xxx | tcp.dstport == xxx

连接词 : and or

显示所有SYN包:tcp.flags.syn == 1

显示所有FIN包:tcp.flags.fin == 1

显示所有RST包:tcp.flags.reset == 1

显示所有窗口大小为0的数据包:tcp.window_size == 0

显示所有包含SYN但不包含ACK标志的数据包:tcp.flags.syn == 1 and tcp.flags.ack == 0

3. wireshark显示



Seq:序列号

Ack:应答号

Len:数据长度

讲解

Seq:数据包本身的序列号,等于最近一次收到的对方数据包中的Ack。

Ack:期望对方继续发送的那个数据包的序列号。最近一次收到的对方数据包中,如果Len等于0,则该包Ack等于对方包Seq+1;如果Len不为0,则该包Ack等于对方包Seq+Len。

图解

数据传送阶段

172.9向37.94发送第一个数据包,该包序列号1,应答号为25,长度为24

37.94向172.9发送第二个数据包,该包序列号25,应答号25,长度0

连接关闭阶段

37.94主动提出关闭连接,发送FIN包,该包序列号25,应答号25,长度0

172.9同意关闭连接,发FIN, ACK包,该包序列号25,应答号26,长度0

37.94给与最后响应,发ACK包,该包序列号26,应答号26,长度0

结束

2. 抓包

命令:tcpdump 「Options」 'Expression'

功能:在网络上转储流量

选项:

☆ -i 「Interface」:指定网络接口;若要同时在所有网卡抓包,使用「any」

☆ -w 「File」:将抓包结果保存到文件

☆ -c 「Num」:指定抓包个数,接收「Num」个包后,自动退出

☆ -C 「Size」:限制结果文件「File」的大小,若超过「Size」,关闭「File」,创建新的文件「FileN」保存输出,N从1开始;单位M。例如:



☆ -G 「Secs」:每隔「Secs」创建一个新文件用以保存结果,新的结果文件名由-w 「File」指定。「File」指定的文件名需包含一个由strftime定义的时间格式,例如raw_%M:%S.pcap;如果没有指定时间格式,每个新文件将会覆盖前一个文件

☆ -W 「Num」:指定结果文件的最大个数

①与-C 「Size」联用时,当结果文件个数到达「Num」,自动从第一个文件开始覆盖,从而形成一个环形缓冲区

因为覆盖过程,并不会相应地修改文件编号,所以数据包的顺序与文件编号无关,即可能「File」和「File1」中包含最后抓到的数据包,「File2」则包含最先抓到的数据包

②与-G 「Secs」联用时,每隔「Secs」秒创建一个新文件,当文件个数到达「Num」时,自动关闭tcpdump

☆ -Z 「User」:以用户「User」权限运行tcpdump。当以「root」用户运行「tcpdump」,且没有指定「-Z」时,「tcpdump」默认以用户「tcpdump」的身份运行。用户「tcpdump」为安装「tcpdump」时,自动添加。

注意:当出现tcpdump:
xx.pcap: Permission denied错误时,添加-Z root选项,以用户root身份执行即可

表达式:指定过滤条件,如地址和端口等。例如抓目的端口为41111的tcp数据包:

tcpdump 'tcp dst port 41111'

说明:抓包不是截获,往来数据收发正常,tcpdump仅复制不私扣;初步观测,tcpdump属轻量级进程,对资源占用微乎其微

示例:

数据量很大的场景下,防止抓包过多耗尽磁盘的方式

◇ 限制时间



「-G 5」指定每「5」秒一个文件,「-W
3」指定文件数的上限为「3」

结果



◇ 限制包个数



「-c 1000」指定抓包的个数为「1000」

结果



◇ 限制文件大小



「-C 10」指定结果文件的大小上限为「10M」,「-W 3」指定文件数的上限为「3」

结果



其它:



若未指定抓包数,则一直抓,直至Ctrl+C退出



退出后自动显示抓包数。

1. 安装tcpdump

yum install tcpdump
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: