Fiddler从特定进程捕获流量停止工作

时间:2019-11-22 17:53:24

标签: fiddler

  1. 打开Chrome并导航到google.com
  2. 在Fiddler中,使用“任何过程”按钮选择该Chrome选项卡
  3. 在Fiddler中,“任何过程”按钮都变为类似“ chrome:11788”的内容
  4. 在Chrome标签中搜索某些内容

我希望Fiddler能够捕获流量,但是不会显示任何会话。如果我使用“任何进程”,则会从所有应用程序捕获流量。

在“过滤器”标签中未选中“使用过滤器”复选框。

我卸载并重新安装了Fiddler。

我已经安装了最新版本。

我还能做什么?

2 个答案:

答案 0 :(得分:0)

现代版本的Google Chrome浏览器使用单独的流程来发出请求;因此由“任何进程”工具检测到的主窗口的进程是不同的。

团队正在考虑解决问题,但目前尚未实现,请参见"Target Any Process" feature no longer working with Chrome

与此同时,可能的解决方法是:

  • 使用其他过滤功能-例如捕获来自Chrome的请求,然后从“会话”视图中选择right click -> Filter now -> Show only process=<process number>

  • 过滤其他所有内容。在Fiddler中,取消选中Tools -> Options -> Connections -> Act as system proxy on startup。然后使用手动指定的代理设置启动Chrome,指向Fiddler监听的端口:

    chrome --proxy-server=http://localhost:8888
    

    这样,捕获的流量将来自此Chrome实例。

答案 1 :(得分:0)

详细版本: Why Fiddler's Process Picker tool doesn't work with Chrome anymore

简报版本:出于安全和性能方面的考虑,Chrome现在通过单独的网络服务处理网络请求。因此,当您在任何Chrome窗口/标签上指向Fiddler的“ 任何进程 ”工具时,实际上是在指向Chrome浏览器的UI(浏览器进程)。 / p>

有一个快速的解决方法:

  1. 在您的Chrome浏览器中导航到chrome://flags/#network-service-in-process。您会看到Runs network service in-process,其值将设置为默认
  2. 将值从默认更改为已启用。这样,您告诉Chrome处理来自浏览器进程的网络请求,该进程也处理UI。
  3. 重新启动Chrome。现在,您可以通过在任意Chrome标签上指向 任何进程 工具来捕获网络请求。

完成开发活动后,请不要忘记将标志重新设置为Default。这样会带来更好的性能。

注意::在撰写本文时,我正在使用Chrome 84。