使用Fiddler作为反向代理

时间:2012-03-22 21:46:27

标签: fiddler reverse reverse-proxy

Fiddler指定了两个将其用作反向代理的选项。

选项1:

  

可以配置Fiddler,以便发送到http://127.0.0.1:8888的任何流量自动发送到同一台计算机上的其他端口。要设置此配置:

     

启动REGEDIT

     

在HKCU \ SOFTWARE \ Microsoft \ Fiddler2中创建一个名为ReverseProxyForPort的新DWORD。

     

将DWORD设置为您要将入站流量重新路由到的本地端口(通常为80的端口)   标准HTTP服务器)

     

重启Fiddler

     

将浏览器导航至http://127.0.0.1:8888

选项2:

  

或者,您可以编写执行相同操作的规则。

     

假设您在名为WEBSERVER的计算机的端口80上运行网站。您正在使用Windows SmartPhone设备上的Internet Explorer Mobile Edition连接到>网站,您无法为其配置网络代理。您希望捕获来自手机的流量和服务器的响应。

     

在WEBSERVER计算机上启动Fiddler,在默认端口8888上运行。

     

单击工具| Fiddler选项,并确保选中“允许远程客户端连接”复选框。如果需要,请重启。

     

选择规则|自定义规则。

     

在OnBeforeRequest处理程序中,添加一行新代码:   if(oSession.host.toLowerCase()==“webserver:8888”)oSession.host =“webserver:80”;

     

在智能手机上,导航至http://webserver:8888

这两个选项都涉及在同一台机器上使用Fiddler,但如果Fiddler和Web服务器在两台不同的机器上运行怎么办?例如,假设某个用户查询example.com并解析为1.2.3.4。我是否可以在1.2.3.4上运行Fiddler,以便在每次查询example.com时将流量转发到1.2.3.5?假设我使用选项2来配置Fiddler,我会将'webserver'设置为example,example.com,www.example.com或example.com的IP地址(假设www.example.com是example.com的别名)?

3 个答案:

答案 0 :(得分:8)

if (oSession.HostNameIs("subdomain.example.com")) {
    oSession.bypassGateway = true; // Prevent this request from going through an upstream proxy
    oSession["x-overrideHost"] = "128.123.133.123"; // DNS name or IP address of target server
}

通过将一个主机名指向不同的IP地址来模拟Windows HOSTS文件

答案 1 :(得分:0)

有时,您可能希望使用Fiddler来捕获流量,但由于某种原因,您无法将客户端配置为使用代理服务器。

Fiddler可以作为“反向代理”运行,这意味着它可以在服务器上运行并将入站请求转发到其他端口或Web服务器。

Video on how to configure fiddler as reverse proxy

答案 2 :(得分:0)

我在Fiddler 2上正确设置了反向代理,并连接了我的iOS设备。但是,我无法让Fiddler显示来自它的流量。如果您遇到此问题,事实证明需要一个难以忍受的简单但关键的配置步骤。

在流量捕获窗口的底部,有一个选项,用于指定从中捕获流量的内容。默认情况下,这是" Web浏览器"这意味着主机上的Web浏览器,而不是远程机器上的浏览器。

Web Browsers Option

将其更改为"所有进程和流量捕获工作。

All Processes Option