从特定进程捕获流量的 Fiddler 在 Chrome 后停止工作
Fiddler capturing traffic from a specific process stopped working in Chrome
- 打开 Chrome 并导航到 google.com
- 在 Fiddler 中使用 "Any Process" 按钮到 select 那个 Chrome 选项卡
- 在 Fiddler 中,"Any Process" 按钮变为 "chrome: 11788"
- 在 Chrome 选项卡中搜索内容
我希望 Fiddler 捕获流量,但未显示任何会话。如果我使用 "Any Process",将从所有应用程序捕获流量。
“过滤器”选项卡中的 "Use Filters" 复选框未选中。
我卸载并重新安装了 Fiddler。
我安装了最新版本。
我还能做什么?
Google Chrome 的现代版本使用单独的流程来发出请求;因此 'Any Process' 工具检测到的主进程 window 是不同的。
团队正在考虑修复,但目前尚未实施,请参阅 "Target Any Process" feature no longer working with Chrome。
同时可能的解决方法是:
使用其他过滤功能 - 例如捕获来自 Chrome 的请求,然后从 Sessions 视图中选择 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 实例。
详细版: Why Fiddler's Process Picker tool doesn't work with Chrome anymore
简要版本: 出于安全和性能原因 Chrome 现在通过单独的 网络服务 处理网络请求。因此,当您将 Fiddler 的“Any Process”工具指向任何 Chrome window/tab 时,您实际上是在指向到 Chrome 浏览器的 UI(浏览器进程)。
对此有一个快速解决方法:
- 在 Chrome 浏览器中导航到
chrome://flags/#network-service-in-process
。您会看到 Runs network service in-process
并且其值将设置为 Default.
- 将值从 默认 更改为 启用。通过这样做,您告诉 Chrome 处理来自浏览器进程的网络请求,该进程还处理 UI.
- 重启Chrome。您现在应该能够通过指向任何 Chrome 选项卡上的 Any Process 工具来捕获网络请求。
完成开发活动后,请不要忘记将标志设置回默认值。这将提供更好的性能。
注意: 在撰写本文时,我使用的是 Chrome 84.
- 打开 Chrome 并导航到 google.com
- 在 Fiddler 中使用 "Any Process" 按钮到 select 那个 Chrome 选项卡
- 在 Fiddler 中,"Any Process" 按钮变为 "chrome: 11788"
- 在 Chrome 选项卡中搜索内容
我希望 Fiddler 捕获流量,但未显示任何会话。如果我使用 "Any Process",将从所有应用程序捕获流量。
“过滤器”选项卡中的 "Use Filters" 复选框未选中。
我卸载并重新安装了 Fiddler。
我安装了最新版本。
我还能做什么?
Google Chrome 的现代版本使用单独的流程来发出请求;因此 'Any Process' 工具检测到的主进程 window 是不同的。
团队正在考虑修复,但目前尚未实施,请参阅 "Target Any Process" feature no longer working with Chrome。
同时可能的解决方法是:
使用其他过滤功能 - 例如捕获来自 Chrome 的请求,然后从 Sessions 视图中选择
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 实例。
详细版: Why Fiddler's Process Picker tool doesn't work with Chrome anymore
简要版本: 出于安全和性能原因 Chrome 现在通过单独的 网络服务 处理网络请求。因此,当您将 Fiddler 的“Any Process”工具指向任何 Chrome window/tab 时,您实际上是在指向到 Chrome 浏览器的 UI(浏览器进程)。
对此有一个快速解决方法:
- 在 Chrome 浏览器中导航到
chrome://flags/#network-service-in-process
。您会看到Runs network service in-process
并且其值将设置为 Default. - 将值从 默认 更改为 启用。通过这样做,您告诉 Chrome 处理来自浏览器进程的网络请求,该进程还处理 UI.
- 重启Chrome。您现在应该能够通过指向任何 Chrome 选项卡上的 Any Process 工具来捕获网络请求。
完成开发活动后,请不要忘记将标志设置回默认值。这将提供更好的性能。
注意: 在撰写本文时,我使用的是 Chrome 84.