Windows
Wireshark是网络包分析工具,主要作用是尝试捕获网络包,显示包的尽可能详细的数据。Wireshark是开源软件项目,GPL协议发行。您可以免费在任意数量的机器上使用,无授权和付费问题。
安装
Wireshark下载地址:https://www.wireshark.org/#download。下载完成后,点击安装,使用默认配置即可完成安装。
注意:安装过程组件WinPcap是必选的,不安装WinPcap无法抓包。
抓包
打开Wireshark后,在菜单捕获
中选择选项
,打开捕获接口
窗口。在捕获接口
的输入
选项卡,选择正确的连接;所选择接口的捕获过滤器
中填写OSS网络数据过滤器,格式是host <bucket>.<endpoint>
,如host bucket-name.oss-cn-hangzhou.aliyuncs.com
。填写完成后点开始
按钮,即开始抓包。
Wireshark抓包启动后,启动应用程序,Wireshark即可抓到应用程序发往OSS的网络包。注意: endpoint请使用http协议,不要使用https协议;因为https协议加密通信,无法抓到网络包的数据。
抓包完成后,停止抓包。可以通过菜单栏捕获
中的停止
停止抓包,也可以通过主工具栏中的停止捕获分组
停止抓包。
使用菜单栏文件
中保存
或另存为
,存抓包数据到文件。您可以把文件发给相关人员分析问题。
分析
用Wireshark打开抓包文件,界面如下:
Package capture
各列的含义见下表:
列名 | 含义 | 说明 |
---|---|---|
No. | 网络包序列 | 从1开始编号 |
Time | 包发送/接收时间点 | 相对时间,精确到微秒 |
Source | 源地址 | IP格式 |
Destination | 目地地址 | IP格式 |
Protocol | 使用协议 | TCP或HTTP |
Length | 包长度 | bytes |
Info | 网络包信息 | 包括类型、状态、数据等 |
常用的分析方法:找到关注的通信包后,选择该行右键选择追踪流
中TCP流
,界面弹出追踪TCP流
窗口,显示数据包的详细内容。
如果只关心某一类网络包,可以使用过滤器筛选。比如只关注GET类的包,可以在应用显示过滤器中http.request.method==GET
并回车。
Linux
Linux上一般使用tcpdump命令抓包,把网络包数据写到文件中,然后在Windows下用Wireshark分析。
抓包
使用tcpdump命令抓包,运行tcpdump要求当前用户是root用户,或者拥有sudo权限。执行如下的命令抓包:
sudo tcpdump tcp -i <eth> -t -s 0 -c <2000> and host <bucket>.<endpoint> -w x.pcap
命令中参数含义如下:
- tcp:抓取特定协议的包,可选值tcp/udp/ip;
- -i:抓取特定网卡上的包,网卡标准可以通过
ifconfig
命令查看; - -t:输出时间;
- -s:数据包长度,默认68bytes,0表示不限制长度,可以抓取完整的数据包;
- -c:只抓取数据包的个数;
- - host:抓取与该主机的网络包;
- -w:包数据写入指定文件;
更多详细及更详细说明,请使用命令man tcpdump
查看。例如:
sudo tcpdump tcp -i enp3s0 -t -s 0 -c 20000 and host bucket-name.oss-cn-hangzhou.aliyuncs.com -w x.cap
应用程序运行完成,tcpdump还没有抓到指定数量的包,tcpdump不会自动退出,此时请使用ctrl+c
退出抓包。然后把包数据文件x.cap下载到Windows机器上用Wireshark分析,或者发给相关人员分析。
注意:抓包的时请使用http协议,不要使用https协议。