引言:今天Fiddler更新到5.0版本后,小酋不经意间晃到了“Fiddler Orchestra”选项卡。爱折腾的小酋赶紧链接到官方用户指南一睹为快,看看这是什么东西,实现了什么新功能。下面是小酋看后做的一个翻译抢先版。
这是了解和设置Fiddler Orchestra的指南,这是Fiddler Web调试器的新口味(老外真会玩,口味一词用得好!)。请注意,该指南在Fiddler 5.0中是准确的。
什么是Fiddler Orchestra?
Fiddler Orchestra是世界著名的Fiddler Web调试器的新口味,它提供远程调试和Web UI。了解更多关于Fiddler Orchestra。
Fiddler Orchestra结构概述
Fiddler Orchestra涉及两个角色——控制器(Controller)和客户端(Client)。控制器的收集数据和控制任何一个客户端。客户端向任何数量的控制器报告数据并接收命令。只有控制器保持端口打开并接受来自客户端的传入连接。所有客户端控制器通信都是加密的。
Fiddler Orchestra第一个版本
Fiddler Orchestra的第一个版本包装在(WinForms)Fiddler 5.0中,由Fiddler 5.0中的Fiddler Orchestra .NET Core Clients和Fiddler Orchestra Controller组成。.NET Core客户端可以在MAC,Linux和Windows上运行。
在第一个版本中,Orchestra Controller只能在第一版中收集数据。它缺乏任何客户端控制功能。.NET Core客户端只能连接到此版本中的单个控制器。
要求(自Fiddler 5.0起)
Fiddler Orchestra在多个平台上运行,但其大部分代码都是平台不可知的。也就是说,在所有平台上都会运行相同的代码并进行非常小的更改。既然如此,Fiddler Orchestra的核心就是编译为.NET Standard 2.0程序集。因此,Fiddler Orchestra客户端和控制器只能运行在至少支持.NET Standard 2.0的框架上。在撰写本文时,这些是:
-
.NET Framework 4.6.1
-
.NET Core 2.0
-
Xamarin.iOS 10.14
-
Xamarin.Android 7.5
在撰写本文时,只有WinForms Fiddler可以是Orchestra控制器。但是,该功能仅适用于安装.NET 4.6.1或更高版本的机器。
安装
在Fiddler Orchestra .NET Core Client和WinForms Fiddler Orchestra Controller(在撰写本文时,唯一可用的Orchestra控制器)之间建立连接有两个步骤。实质上,必须先将控制器设置为先接受连接(即先启动Controller),然后再设置客户端以连接到控制器。
设置WinForms Fiddler Orchestra控制器
在WinForms Fiddler 5.0中,有一个新的Fiddler Orchestra选项卡:
这是Orchestra控制器配置的起点。它只需要一个端口和一个私钥来启动一个控制器。该端口必须打开以进行外部连接,以便Orchestra客户端可以连接。私钥用于加密与客户端的通信。客户端必须具有相同的私钥才能连接到此控制器。私钥只能在控制器停止时重新生成。
设置.NET Core Fiddler Orchestra客户端(在MAC,Linux,Windows等上)
背景
.NET Core Fiddler Orchestra Client具有内置的完整Fiddler功能。不幸的是,在写这篇文章的时候,这些都隐藏在一个非常有限的Web UI之后,它只允许设置Fiddler来捕获流量并建立到Fiddler Orchestra控制器的连接。
.NET Core Fiddler Orchestra客户端通过充当代理,就像老式的WinForms Fiddler一样充当代理。然而,WinForms Fiddler通过在Windows启动时自动将自身设置为系统代理来隐藏此代理行为,即用户不仅不必执行任何手动代理设置,而且可能甚至不会意识到Fiddler充当代理。
在撰写本文时,Fiddler Orchestra Client没有自动代理设置功能。因此,用户必须负责代理设置,即用户必须在启动时手动更改浏览器或任何其他应用程序的设置以指向Fiddler Orchestra客户端代理,然后在退出时恢复设置。在未来的Fiddler Orchestra版本中,用户将能够提供一个脚本来执行该操作,该脚本将在启动时自动执行。
安装
.NET Core Fiddler Orchestra客户端二进制文件来自于WinForms Fiddler 5.0。在Fiddler 5.0的Fiddler Orchestra选项卡上提供了一个方便的快捷方式,如下所示。
在撰写本文时,.NET Core Fiddler Orchestra Client是一款普通的ASP .NET Core应用程序。所以,它的启动很简单:
此时,Web用户界面已启动并在http://localhost:8800上运行,并且任何HTTP/HTTPS代理/反向代理组合都可以启动以捕获流量。还可以建立与Fiddler Orchestra Controller的连接,并且任何通过任何代理的流量都将报告给连接的控制器。
下面是代理和Orchestra连接配置的更详细视图。
代理页面
主页是HTTP / HTTPS代理设置页面。
代理设置与WinForms Fiddler中的相同。
Decrypt HTTPS可以通过代理实现MITM HTTPS流量解密。在提到MITM之后,值得一提的是,除非已经通过HTTPS根证书选项卡创建或上传HTTPS根证书,否则HTTPS流量解密将不起作用。
除非选中“Allow remote clients to connect”,否则代理服务器将仅接受来自正在运行的计算机的连接。
Use upstream gateway:指定上游网关允许所有传出流量通过另一个代理进行传输。
HTTP反向代理页面
反向代理允许拦截正在运行的机器的传入流量。通常会使用反向代理来拦截到Web服务器,Web服务等的传入流量。
反向代理将自己定位在web服务器/ web服务及其客户端之间。所以,所有请求都会先到达反向代理,然后将它们重定向到实际的接受者。
“监听端口”设置指定反向代理将预期传入流量到达的端口。“主机侦听端口”设置指定原始Web服务器/ Web服务侦听的端口。反向代理会将“Listen on port”上收到的任何流量重定向到“Host listen on port”。
除非选中“Allow remote clients to connect”,否则代理服务器将仅接受来自正在运行的计算机的连接。由于这在反向代理设置中很少有用,所以默认情况下选中该选项。
HTTPS反向代理
HTTPS反向代理遵循与HTTP反向代理相同的逻辑。唯一添加的设置是主机名。将生成该主机名下的证书并使用HTTPS根证书选项卡中提供/生成的根证书进行签名。该证书将被HTTPS反向代理用于加密对传入请求的响应。
因此,发送请求的客户端应该信任在HTTPS根证书选项卡中提供/生成的根证书。代理服务器/ web服务使用的实际证书被反向代理使用在技术上是可行的,但在编写本功能时尚未实现。
HTTPS根证书
HTTPS根证书的存在是运行HTTPS(反向)代理的先决条件。现有证书可以上传或者可以生成新证书。
生成的证书文件可能受密码保护。还可以为生成的证书添加别名。
Orchestra连接
Orchestra Connection选项卡允许建立到Fiddler Orchestra控制器的连接。控制器应该在尝试连接之前运行。
连接设置很简单。控制器的IP地址和端口是必需的。Controller设置为使用特定的私钥对流量进行加密。还应该提供私钥(可以从WinForms Fiddler Orchestra Controller设置选项卡复制)。
最后,过滤Fiddler Orchestra配置流量将阻止Fiddler Orchestra Web客户端流量发送到控制器并在那里显示。
想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!