导航:首页 > 配服务器 > 如何抓包服务器计时

如何抓包服务器计时

发布时间:2022-09-09 09:56:19

A. 四大网络抓包神器,总有一款适合你~

无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章 主要介绍如何在各个平台下,高效的抓包。

目前的抓包软件总体可以分为两类:

一种是设置代理抓取http包,比如Charles、mitmproxy这些软件。

另一种是直接抓取经过网卡的所有协议包,其中最出名就是大名鼎鼎的wireshark以及linux自带的抓包软件tcpmp。

下面重点介绍一下这四个抓包工具的特点以及使用。

wireshark想必大多数程序员都不会陌生。wireshark在各个平台都可以安装使用,它 可以抓取经过指定网卡的所有协议。 wireshark虽然很强大,但是对初学者其实不是很友好。

这也正是由于它太强大,它可以抓取所有包,所以初学者在使用时面对茫茫数据流不知所措。初学者需要认真的去学习怎么过滤得到自己感兴趣的包,但是如果不熟悉wireshark的过滤语法,要过滤数据包将举步维艰。

过滤语法简单介绍

wireshark的过滤语法总结起来其实也很简单,就是 以协议开头,后面可以跟着协议的属性,然后加上一些判断符号, 比如contains、==、>、<等等。比如只想展示http的协议内容,则直接在过滤器输入框中输入http即可。

如下图:

比如我 只想看http协议的请求头中uri包含’/api’的协议,就可以这么写:

如果想通过目标ip或者来源ip来过滤包,就不可以以http协议为前缀了,因为这些是ip协议的相关属性。 通过目标ip来过滤可以这么写:

上面表示目标机器的ip是61.135.217.100并且协议是http的包。

wireshark支持很多种协议,我们可以通过右上角的expression来打开搜索支持的协议,还可以找出协议支持的属性,然后填入期待的值,软件会自动为我们构建过滤语句。

优点:

功能强大,可以抓取所有协议的包

抓到的包容易分析

缺点:

由于线上服务器没有GUI,只有命令行,因此无法在线上服务器使用

无法分析https数据包,由于wireshark是在链路层获取的数据包信息,所以获取到的https包是加密后的数据,因此无法分析包内容。当然,我们可以对https数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。

tcpmp是linux上自带的一个抓包软件(mac也有),功能强大,也可以抓取经过指定网卡的所有协议包。

由于是命令行工具,tcpmp抓取到的包不易于分析,一个常见的做法是将tcpmp抓到的包输出到某个文件,然后将文件拷贝下来用wireshark分析。

一些简单的过滤参数:

抓包内容输出到文件:

之后我们可以把test.cap直接用wireshark打开,就可以很直观的分析包了。

用tcpmp输出cap文件包:

tcpmp-r test.cap

Charles是一款http抓包工具,它是通过代理来实现的抓包。也就是我们在访问网页时需要配置代理,将代理指向Charles监听的端口,之后我们的http请求都会发向Charles的端口,之后Charles会帮我们转发并记录协议内容。

Charles的使用非常简单,配置好代理后,Charles就开始抓包了。

我们可以直接通过Charles的GUi查看包的内容:

上图中的unknown表示https加密后的数据,所以看到不协议的具体内容。我们可以通过安装Charles的证书,让Charles也可以查看https协议的具体内容。

优点 :

使用简单,只需配置一下代理地址就可以

要抓取https协议的配置也很简单,只要安装下charles的证书就可以了

mitmproxy是python写的一款http抓包工具,虽然只支持http抓包,但是它的特性非常强大,它不仅可以抓包,还可以对请求进行拦截、重现等操作。和Charles一样,它的原理也是基于代理,使用的时候需要设置代理指向它。

mitmproxy是命令行工具,但是也自带了mitmweb工具,可以让用户在网页上操作。另外,mitmproxy还支持用户自行编写插件,可以编写脚本对请求进行处理,然后把修改后的请求发出去。

1、安装 

首先需要在机器安装python3以及pip3.之后通过pip3安装

pip3 install mitmproxy

如果安装mitmproxy过程中报错MoleNotFoundError: No mole named '_ssl',就需要安装一下OpenSSL,然后再重新编译安装一下python3。

安装好openSSL后再执行pip3 install mitmproxy

2、使用 

安装后,直接在命令行输入mitmproxy就会进入它的交互界面:

这时候mitmproxy已经开始监听8080端口(默认),接着,我们可以去浏览器设置代理。浏览器设置代理的方式有很多,这里不多做介绍。

设置完代理后,访问浏览器的请求都会被发到mitmproxy上,mitmproxy根据规则对请求进行拦截(不配置拦截规则的话则都不拦截),所有经过的请求都会被输出:

在交互界面上可以通过快捷键操作请求。输入问号’?’,可以查看快捷键的文档。

3、下面介绍一些常用的快捷键和功能

① 请求过滤  

在请求列表交互界面,按下f键后,可以输入一些过滤规则:

具体的过滤语法可以按下’?‘键后,再按下方向键右’—>’或者l键。

② 请求拦截 

按下i键后,可以对指定的请求进行拦截。按mitmproxy收到指定条件的请求时,不会立马把它转发出去,而是等待我们执行resume操作后,才会把请求转发出去——在这期间我们甚至可以对请求进行手动修改。

红色字体表示该请求被拦截,之后我们可以按入a键来恢复该请求,可以输入A键恢复所有被拦截的请求。

③ 查看/编辑请求 

把指示光标移动到某个请求上,按回车可以查看请求的内容。或者鼠标直接点击请求也可以。

之后通过左右方向键可以查看request、response、detail等信息。

如果要编辑请求,可以在这个界面输入e,然后会让我们选择编辑哪块内容:

之后就会进入vim编辑界面编辑相应的内容了(保存后会生效)。

④ 重发请求 

mitmproxy的光标指向某个请求时,按下r键可以重发这个请求(重发前可以对该请求进行编辑)。

按下’:’键后,可以输入命令,这样我们就可以通过过滤规则批量的重发请求

replay.client是mitmproxy内置的一个命令,我们也可以自行编写命令。命令的编写可以参考官网文档,这里不做介绍。

⑤ 插件开发 

我们可以编写插件,然后再启动的时候指定插件,mitmproxy处理请求的时候会执行一个插件的链,这样我们就可以对请求进行编辑然后再发送出去了。

借用官网的插件demo:

这个方法对每一个请求进行处理,然后打印序号。通过mitmproxy -s test.py来让插件生效。通过插件可以绑定各种连接事件。感兴趣的朋友可以自行去mitmproxy官网看文档,这里不多做介绍。

⑥ 保存抓到的请求数据 

通过w快捷键我们可以把这次抓到的请求包保存到文件上。

通过mitmproxy -r file可以读取以前抓取的请求信息进行分析。

优点:

命令行操作,可以在无GUI界面的服务器上使用

对于这几个抓包神器,我总结了下使用场景:

只抓http协议的话:

推荐使用mitmproxy。mitmproxy丰富的功能不仅可以满足我们的抓包需求,还可以提升我们的工作效率。比如测试可以抓包后一键重发请求来重现bug,开发调试的时候可以修改请求内容等等。

如果是在线上的没有GUI的服务器:

推荐使用tcpmp,虽然mitmproxy也可以支持命令行抓包,但是生产环境的服务器最好不要乱安装第三方插件。另外,大多数服务器都有装tcpmp。我们可以通过把请求的内容输出到文件,然后拷贝会自己的电脑用wireshark分析。

想要抓取http以外的协议的话:

直接上wireshark。功能强大。对于Charles,感觉用了mitmproxy之后,就基本用不上Charles了。Charles好像也可以编辑后再发送,但是感觉不是很好用,可能我用的不是很熟吧。

B. 如何使用wireshark抓包

你好,方法如下
抓取报文:
下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包。例如,如果想要在无线网络上抓取流量,点击无线接口。点击Capture Options可以配置高级属性,但现在无此必要。
点击接口名称之后,就可以看到实时接收的报文。Wireshark会捕捉系统发送和接收的每一个报文。如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文。
上端面板每一行对应一个网络报文,默认显示报文接收时间(相对开始抓取的时间点),源和目标IP地址,使用协议和报文相关信息。点击某一行可以在下面两个窗口看到更多信息。逗+地图标显示报文里面每一层的详细信息。底端窗口同时以十六进制和ASCII码的方式列出报文内容。
需要停止抓取报文的时候,点击左上角的停止按键。
色彩标识:
进行到这里已经看到报文以绿色,蓝色,黑色显示出来。Wireshark通过颜色让各种流量的报文一目了然。比如默认绿色是TCP报文,深蓝色是DNS,浅蓝是UDP,黑色标识出有问题的TCP报文——比如乱序报文。
报文样本:
比如说你在家安装了Wireshark,但家用LAN环境下没有感兴趣的报文可供观察,那么可以去Wireshark wiki下载报文样本文件。
打开一个抓取文件相当简单,在主界面上点击Open并浏览文件即可。也可以在Wireshark里保存自己的抓包文件并稍后打开。
过滤报文:
如果正在尝试分析问题,比如打电话的时候某一程序发送的报文,可以关闭所有其他使用网络的应用来减少流量。但还是可能有大批报文需要筛选,这时要用到Wireshark过滤器。
最基本的方式就是在窗口顶端过滤栏输入并点击Apply(或按下回车)。例如,输入逗dns地就会只看到DNS报文。输入的时候,Wireshark会帮助自动完成过滤条件。
也可以点击Analyze菜单并选择Display Filters来创建新的过滤条件。
另一件很有趣的事情是你可以右键报文并选择Follow TCP Stream。
你会看到在服务器和目标端之间的全部会话。
关闭窗口之后,你会发现过滤条件自动被引用了——Wireshark显示构成会话的报文。
检查报文:
选中一个报文之后,就可以深入挖掘它的内容了。
也可以在这里创建过滤条件——只需右键细节并使用Apply as Filter子菜单,就可以根据此细节创建过滤条件。

C. js 怎么抓包

抓包大致有以下两种途径:

  1. 可以用第三方软件,比如fiddler(本机需要有.net 运行环境):

D. wireshark怎么抓包服务器

这个很简单,直接在电脑上安装抓包软件wireshark,将电脑与路由器连接好,点开wireshark,开始采集,此时界面会弹出一个小窗口,需要你选择要抓包的网卡,你应该选择与路由器互联的网卡。准备就绪,直接登录web界面,wireshark会抓取到所有从选定网卡收发的报文了。

E. 我是网络方面的新手,希望请教各位一个问题:如何抓取机内的数据包 就是说我的数据库服务器在自己的机器

一般来说抓包都是用软件,抓包软件是抓去进,出设备的数据包。所以如果数据没有流动那就抓不到。不知道你想要查看些什么内容,如果你想看数据服务器与其他设备都传递些什么数据包那就得把数据服务器和另一个设备连在一起,让他们处于信息交互的状态,这样才能抓包。
比较有名的抓包工具有sniffer,etherpeak,wireshake(可能拼写有误,网络会为你纠正^_^)
而个人pc抓包一般都是抓取网卡上的数据,一般抓包软件会让你选择抓哪个网卡的数据,那就选你连接服务器和另一设备的那张网卡就行了。
抓取的包是所有通过网卡的数据,所以准确的筛选就要看你自己的知识够不够了。

F. Fiddler抓包基本使用

Fiddler_官方网站
Fiddler_官方文档
Fiddler_官方视频
Fiddler_官方插件
1、Filddler简介
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。
2、Filddler工作原理
Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.

4、界面介绍
4.1 Fiddler主界面

4.2 工具面板

工具栏说明:说明注释、重新请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开浏览器、清除IE缓存、编码/解码工具、弹出控制监控面板、MSDN、帮助。
两种模式:
1、 缓冲模式(Buffering Mode): Fiddler直到HTTP响应完成时才将数据返回给应用程序。可以控制响应,修改响应数据。但是时序图有时候会出现异常
2、流模式(Streaming Mode): Fiddler会即时将HTTP响应的数据返回给应用程序。更接近真实浏览器的性能。时序图更准确。但是不能控制响应。

4.3会话面板

4.4 监控面板

统计报表
(1) 请求总数、请求包大小、响应包大小;
(2) 请求起始时间、响应结束时间、握手时间、等待时间、路由时间、TCP/IP传输时间;
(3) HTTP状态码统计;
(4) 返回的各种类型数据的大小统计以及饼图展现。

时间轴
每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴,用图表的形式展现出来,就形成了瀑布图。在Fiddler 中,只要在左侧选中一些请求,右侧选择Timeline标签,就可以看到这些请求的瀑布图

1)绿色的请求表示这是一个“有条件的请求”。HTTP 协议定义了 5 个条件请求头部,最常见的两个是“If-Modified-Since”和“If-None-Match”。服务器根据这两个头部来验证本地缓存是否过期,如果过期则正常返回资源的最新版本;否则仅返回 304 Not Modified,浏览器继续使用本地缓存。包含条件请求头部的请求用绿色显示,否则用黑色。
2)有阴影线的请求是缓冲模式下的请求,实心的是流模式下的请求。Fiddler 提供了缓冲(Buffering)和流(Streaming)两种抓包模式:缓冲模式下,Fiddler 会在响应完成时才将数据返回给应用程序(通常是浏览器),这种模式下可以控制响应,方便地修改响应内容;流模式下,Fiddler 会实时返回响应数据给浏览器,但没办法控制响应。一般使用流模式,瀑布图会更真实一些。这两种模式可以通过 Fiddler 的工具栏选择。特别的,通过 Fiddler 的“AutoResponder”功能返回的响应,只能是缓冲模式。
3)请求条的不同颜色对应着不同类型的响应,根据响应头的 MIME Type 来归类。如浅绿色表示图片类型的响应;深绿色是 JavaScript;紫色是 CSS;其它都是蓝色。
4)请求中的黑色竖线,表示的是浏览器收到服务端响应的第一个字节这一时刻。这个时间受 DNS 解析、建立连接、发送请求、等待服务端响应等步骤的影响。
5)请求条后面的图标表示响应的某些特征。如软盘图标表示这个响应正文从本地获得,也就是说服务端返回了 304;闪电表示这是 Fiddler 的“AutoResponder”的响应;向下的箭头表示响应是 302,需要重定向;红色感叹号说明这个请求有错误发生(状态码是 4XX 或 5XX)。特别的,如果请求条后面有一个红色的X,说明服务端响应完这个请求之后,断开了连接。出现这种情况一般有两种可能:HTTP/1.0 的响应中没有 Connection: Keep-Alive;或者是 HTTP/1.1 的响应中包含了 Connection: close。使用持久连接可以省去建立连接的开销,也可以减小 TCP 慢启动和其它拥塞控制机制带来的影响,总之是好处多多。
6)请求前面的红色圆圈表示这个连接是新建的,绿色表示是复用的。上面的圆圈表示的是浏览器到 Fiddler 的连接,下面的圆圈是 Fiddler 到服务端的连接。

4.5 状态面板

控制台
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
?.png 用来选择png后缀的图片
bpu 截获request
bpafter 截获response

5、HTTP协议简介
5.1、HTTP消息的结构
5.1.1、Request

先看Request 消息的结构, Request 消息分为3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个空行。第一行中的Method表示请求方法,比如"POST","GET", Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号,当使用的是"GET" 方法的时候, body是为空的。

5.1.2、Response

5.2 状态码
Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.
HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

1XX —— 提示信息,表示请求已被成功接收,继续处理
2XX —— 成功,表示请求已被成功接收,理解,接受
3XX —— 重定向,要完成请求必须进行更进一步的处理
4XX —— 客户端错误,请求有语法错误或请求无法实现
5XX —— 服务器端错误,服务器未能实现合法的请求

常见响应码说明:
200:响应成功,这表明该请求被成功地完成,所请求的资源发送回客户端
302:重定向,新的URL会在response 中的Location中返回,浏览器将会自动使用新的URL发出新的Request
304:代表上次的文档已经被缓存了, 还可以继续使用,例如打开博客园首页, 发现很多Response 的status code 都是304
[提示:如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面]
400 : 客户端请求与语法错误,不能被服务器所理解
403:服务器收到请求,但是拒绝提供服务
404 :找不到网页,请求的资源不存在
500 : 服务器发生了不可预期的错误
503 :服务器当前不能处理客户端的请求,一段时间后可能恢复正常

6、 常用功能
6.1 监听HTTPS

6.3 模拟各类场景
通过GZIP压缩,测试性能
模拟Agent测试,查看服务端是否对不同客户端定制响应
模拟慢速网络,测试页面的容错性
禁用缓存,方便调试一些静态文件或测试服务端响应情况

6.4 Compare(对比文本)

Fiddler中设置断点修改Response跟断点修改Request用法差不多。

参考文档: http://www.cnblogs.com/FounderBox/p/4653588.html?utm_source=tuicool&utm_medium=referral
http://kb.cnblogs.com/page/130367/

G. 如何抓取指定网站后台服务器数据

先打开wireshark监听指定的网卡就是上网的那一张网卡,开始抓包,然后使用浏览器访问你想要的网站,当浏览器显示网站数据传输完毕,停止抓包,将所抓的数据保存下来即可

H. 如何使用Charles抓包

你好,方法如下:
HTTP抓包1、打开Charles程序2、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.73、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:4、iOS设备打开你要抓包的app进行网络操作5、Charles弹出确认框,点击Allow按钮即可

I. 如何在linux服务器上抓包

tcpmp -s 0 -i any host 抓包的IP -w test.pcap //抓包完成后按Ctrl+C结束抓包

阅读全文

与如何抓包服务器计时相关的资料

热点内容
变频器加密密码 浏览:794
美国银行加密市场 浏览:382
我的世界服务器如何tp玩家 浏览:24
app下载统计怎么找 浏览:262
荔枝app怎么看适合自己的发型 浏览:369
魔兽世界client文件夹 浏览:539
解压音乐轻松入睡 浏览:270
c盘文件夹卡顿怎么办 浏览:448
增量调制编译码实验数据 浏览:761
电流采样信号进单片机 浏览:189
编程教育课程收费 浏览:415
服务器的气怎么写 浏览:395
怎么删除授时服务器地址 浏览:143
android基础组件 浏览:666
建兴app怎么变成黑色了 浏览:51
文件压缩包如何加密文件 浏览:183
2010提出的算法 浏览:674
冰柜压缩机的寿命 浏览:105
办公室采访程序员 浏览:569
美橙云服务器购买 浏览:754