如何让 Fiddler 停止忽略到 localhost 的流量?

Posted

技术标签:

【中文标题】如何让 Fiddler 停止忽略到 localhost 的流量?【英文标题】:How do I get Fiddler to stop ignoring traffic to localhost? 【发布时间】:2010-09-17 21:02:59 【问题描述】:

在 Internet Explorer 中使用 Fiddler 监控 HTTP 请求和响应时,它会忽略所有指向 http://localhost 的流量。

【问题讨论】:

我觉得这只是IE 嗯...我的本地主机流量默认不会被忽略,我也使用 IE 11 对其进行测试。 我也不得不从 IIS 切换到 IIS Express Fiddler 曾经是这个伟大的工具,但现在它只是一个配置噩梦。 【参考方案1】:

使用您的本地 IP 地址(不是 127.0.0.1)将起作用,例如 192.16.0.88 等。转到 cmd.exe 并键入 ipconfig,您将看到它。

【讨论】:

它不起作用。本地好像连接不上自己的IP地址【参考方案2】: 在命令提示符下键入 ipconfig。 它会给你你的 IPv4 地址 点击服务时,将 localhost 替换为 URL 中的 IPv4 地址。

流量将显示在 Fiddler 中您计算机的 IP 地址下。

【讨论】:

【参考方案3】:

不要在 url 中使用 localhost!

http://localhost:4200/myTestProject

这样使用:

http://MyMachineName:4200/myTestProject http://ipv4.fiddler:4200/myTestProject

=>=> Click here for further information <=<=

【讨论】:

【参考方案4】:

您可以使用http://ipv4.fiddler 或http://ipv6.fiddler 代替本地主机

【讨论】:

【参考方案5】:

使用 Fiddler v4.6 和默认配置无法看到来自 'localhost' 的任何流量。在这里尝试了很多建议,但没有任何效果。

启用帮助 -> 疑难解答,可以看到更多请求。会话以删除线字体标记,给出的原因是“由于状态栏> 进程过滤器而隐藏”。

发现 Eric Lawrence 对有同样问题的人的回复 http://www.telerik.com/forums/fiddler-not-capturing-ios-traffic-even-though-echo-service-works

基本上要做的是:查看 Fiddler 窗口底部的状态栏,该栏中的第二个小“托盘”可能显示类似“Web 浏览器”的内容。单击它,然后更改为“所有进程”。

【讨论】:

【参考方案6】:

Fiddler v4.5.1.0 将允许您将“localhost”替换为“localhost.fiddler”,并将 localhost 作为您机器上运行的接收服务器的主机名。

这避免了在使用 Visual Studio 使用的内置 Web 服务器连接到 WCF 服务时出现“无法识别主机”错误。

即代替 http://localhost:51900/service.wcf你可以用http://localhost.fiddler:51900/service.wcf

【讨论】:

完美运行!.. 由于我工作的网络配置,其他建议均无效。这是唯一对我有用的技巧。 @Zorthgo 很高兴听到。 :)【参考方案7】:

为了让 Fiddler 在本地 IIS 上捕获来自 localhost 的流量,有 3 个步骤(它在我的计算机上工作):

    单击工具 > Fiddler 选项。确保选中允许远程客户端连接。关闭 Fiddler。

    在 KEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2 中创建一个名为 ReverseProxyForPort 的新 DWORD。 将 DWORD 设置为端口 80(在此处选择十进制)。重启 Fiddler。

    将端口 8888 添加到客户端中定义的地址。例如 localhost:8888/MyService/WebAPI/v1/

【讨论】:

是的,此设置使提琴手作为反向代理运行,以便将入站请求转发到不同的端口。在此示例中,它将向端口 8888 发出的请求转发到 80。 对我来说最复杂的是完全忽略 localhost 并将所有其他流量发送给 fiddler 处理。您必须绕过本地主机,但也将其与您的功能一起排除。 (您可以尝试使用隐藏 304 规则进行测试。)。所以我以以下方式结束了排除它if ((m_EnableProxy) &amp;&amp; !(oSession.host =="127.0.0.1" || oSession.host =="localhost" || oSession.host =="ipv4.fiddler")) oSession["X-OverrideGateway"] = "socks=127.0.0.1:8080"; oSession["ui-backcolor"] = "#EFEF9F"; 。这个函数应该是onBeforeRequest。【参考方案8】:

Fiddler 的网站addresses this question 直接。

有几种建议的解决方法,但最直接的方法是使用机器名称而不是“localhost”或“127.0.0.1”:

http://machinename/mytestpage.aspx

【讨论】:

不知道为什么 Fiddler 的网站不建议“在 localhost 之后添加句点”建议,我认为这是最好的建议。在我工作的某些服务器环境中尤其如此,其中 localhost 是我唯一可以使用的东西(由于 ActiveX 控件、权限等)。 @JoshMouch 因为一些网络服务器拒绝 localhost. 作为无效的主机名。 localhost.machinename 在我的情况下被拒绝。 如前所述,“本地主机”。不适用于许多 API(或 127.0.0.1)。我使用了“localhost.fiddler”修改对我来说非常有效。【参考方案9】:

正确的答案是,并不是 Fiddler 忽略了以 localhost 为目标的流量,而是大多数应用程序都经过硬编码以绕过代理(Fiddler 就是其中之一)来处理以 localhost 为目标的请求。

因此,可用的各种解决方法:http://fiddler2.com/documentation/Configure-Fiddler/Tasks/MonitorLocalTraffic

【讨论】:

截至 2013 年 4 月:fiddler2.com/documentation/Configure-Fiddler/Tasks/… p.s.感谢 Eric 提供的出色工具。 在本地主机的末尾添加一个句点是最好的技巧,fiddler 的网站没有提到那个。 尝试了此页面上的其他各种解决方案:添加句点,将主机名从“localhost”更改为我的机器名。都没有用。用“ipv4.fiddler”替换“localhost”,在解决方法文档,有效。 在地址编码在源代码库中的项目文件中、分发给团队中的所有开发人员(想想 Mercurial/Git)或所有开发人员实际上没有的情况下提琴手这些解决方案是不切实际的,并且导致的问题比解决的问题多。需要的是 fiddler 在项目之外操作的一种方式,因此对项目或其配置的影响为零。 对我来说是正确的。我使用 SOAP-UI 发送了一个 SOAP HTTP 请求,Fiddler 4 没有收到它。然后我使用 POSTMAN 发送了相同的 HTTP 请求并成功得到它【参考方案10】:

转到工具,提琴手选项...,选择连接选项卡,然后确保勾选监控所有连接。就像 Antony Scott 所说,还要确保“Web Sessions”窗格设置为“Capturing”和[“Web Browsers”或“All Processes”]。看起来默认是“非浏览器”。

【讨论】:

【参考方案11】:

自 IE9 RC 以来,Internet Explorer 具有一项新功能:将 &lt;-loopback&gt; 添加到代理绕过列表会导致 WinInet(IE 使用的网络库)通过定义的代理发送发往 localhost127.0.0.1 的请求。

这是@EricLaw 的原始公告:http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx

【讨论】:

【参考方案12】:

Windows XP:

请务必设置为单击“Internet 选项”控制面板小程序的“连接”选项卡中“拨号和虚拟专用网络设置”列表框中的每个项目的设置按钮。

我注意到,一旦我连接到我的 ***,Fiddler 将停止使用“LAN 设置”配置。即使流量没有通过 ***。

【讨论】:

【参考方案13】:

确保勾选监控所有连接。 它对我不起作用 也许端口不同 我需要你从 gmail 看到对我网站的 httprequest 我的网站在 win xp 和 iis5(我自己的机器)上

【讨论】:

【参考方案14】:

为了让 Fiddler 在本地主机上进行调试时捕获流量,在您按 F5 开始调试后更改地址,以便 localhost 有一个“。”在它之后。

例如,您开始调试并且地址栏中有以下 URL:

http://localhost:49573/Default.aspx

改成:

http://localhost.:49573/Default.aspx

按回车键,Fidder 将开始获取您的流量。

【讨论】:

甜蜜。如此简单有效。 适用于 cassini.. 不是 iis,如果您要连接到 SSL 上的站点或服务... 不错!完美运行 - 再简单不过了。 使用 cygwin 并使用以下命令 curl 对我不起作用: curl -X POST -H "application/json" -d '"name":"firstName":"eli" , "lastName":"kool"' localhost.:61444/Inbound/Catch WebAPI 不适用于 localhost。它说错误请求 - 无效的主机名

以上是关于如何让 Fiddler 停止忽略到 localhost 的流量?的主要内容,如果未能解决你的问题,请参考以下文章

如何让Fiddler给所有的HTTP请求都加上一个头

运行 UI 自动化测试时如何忽略/停止推送器从日志记录到控制台

如何让 Fiddler\其他应用程序自动拦截和修改 HTTP 请求参数?

如何忽略 Swing 中的按键事件?

Fiddler忽略捕捉大文件流

如何让Fiddler可以抓取https的请求