品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Fiddler 4
Fiddler作为常用的抓包工具,在网络调试工作中通过对HTTP/HTTPS协议的高效解析能力,成为了不少开发、测试人员排查接口问题的常用工具。不过随着调试场景逐渐变得复杂,使用者常对其功能产生疑问,比如日常工作中需实时掌握网络数据传输动态,举个例子我们有时候需要了解某个时间段内软件的请求量、数据流量等,这时候用Fiddler是否可以监控流量?此外,网络传输中除了应用层的HTTP/HTTPS请求外,底层还涉及到TCP/UDP等协议的数据交互,Fiddler是否可以直接抓取TCP协议的数据包辅助定位问题?接下来,我们针对“Fiddler可以监控流量吗,Fiddler可以抓TCP吗”这两点具体分析下。
一、Fiddler可以监控流量吗
可以明确的告诉大家,Fiddler是具备定向流量监控能力的,但是不是全网络流量,它只能监控经过自身代理的HTTP/HTTPS协议的流量,对于没有经过Fiddler代理服务器的流量是无法捕获到的。
1、我们打开Fiddler后,默认会自动配置系统代理,在Windows系统中打开系统设置,找到“网络和Internet”选项卡并点开里面的“代理'选项,可以看到Fiddler在运行的时候自动给我们配置好了系统代理。

2、当Fiddler左下角的Capturing按钮处于高亮状态的时候,说明Fiddler已经开始实时捕获并监控经过代理的流量了,Fiddler左侧的会话列表也会实时更新捕获进来的网络请求。我们可以通过Fiddler提供的Filters过滤器过滤并展示定向流量。

二、Fiddler可以抓TCP吗
Fiddler的设计定位是捕获HTTP/HTTPS请求的调试工具,它并不支持直接捕获TCP数据包,Fiddler主要聚焦在应用层数据解析,而不是底层传输层协议捕获,所以它没办法像Wireshark那样直接抓取TCP协议的原始数据包。但是在分析HTTP/HTTPS请求的时候,可以间接展示和这条请求相关的TCP层关键信息,帮助我们判断TCP连接状态对应用层请求的影响。

Fiddler的工作机制是代理转发+应用层解析,这个工作机制决定了Fiddler无法触及TCP层,Fiddler通过设置系统代理,让HTTP/HTTPS请求现转发到自身,然后再由Fiddler转发到目标服务器,所以整个过程中Fiddler也只是处理了应用层的HTTP/HTTPS报文,不直接操作系统的TCP协议栈,所以无法拦截到底层TCP数据包。而且Fiddler的核心代码只实现了HTTP/HTTPS协议的解析逻辑,并不包含TCP协议的解析模块,自然就无法捕获和分析TCP层数据了。

而且Fiddler的目标用户是开发、测试人员,主要是为了帮这类用户快速定位应用层接口问题,例如参数错误、响应异常等,而不是排查网络丢包、TCP连接异常等底层网络故障。
以上就是Fiddler可以监控流量吗,Fiddler可以抓TCP吗的全部内容了。Fiddler可以监控流量,而且可以实时监控网络流量,但是只监控经过Fiddler代理服务器的流量,它提供了直观的可视化窗口方便我们随时查看每条请求。Fiddler是不能捕获TCP流量的,因为Fiddler从工作原理上讲,它只能捕获到应用层HTTP/HTTPS协议,其目标用户仍是开发、测试人员。
