Debugging Web Applications With Fiddler On Linux

Fiddler is by far one of the most popular web debugging proxies available. It allows you to capture, examine, save, edit and replay all HTTP / HTTPSย  requests made by a web based application. For many years it was available only on Windows systems. But recently the creator of Fiddler, Eric Lawrence has released a version of Fiddler that runs using the mono runtime allowing it to run successfully on MacOS and Linux platforms.

In this post I am going to run through the basic setup and usage of fiddler under Linux (I am using Linux Mint 15 the process should not vary too for other Debian based variants though).

First up visit the fiddler site and download the alpha mono version of the application. After downloading unzip the package and copy the mono version of fiddler to the directory where you would like it to live on your system (I am simply using a folder named Software in my home directory).

Getting Fiddler Running

The process to get Fiddler running is not very complex but it does require the mono runtime along with functionality from the mono-winforms package. So first up open a terminal window and check that they are installed on your system with:

sudo apt-get update
sudo apt-get install mono-runtime mono-winforms

After installing the required dependencies for Fiddler navigate to the folder you unzipped earlier and enter the “app” folder contained within.

cd app

In this folder is a few files and Fiddler executable to get the application running simply use mono to run as follows:

mono Fiddler.exe

With any luck you should now have a functioning copy of fiddler running on your local machine.

Fiddler running with mom runtime
Browser Configuration

Fiddler is running and acting as a proxy server on the local system. But until a browser is configured to communicate through the proxy server, you will not be able to capture any requests. Setting a browser to use a proxy server is very simple process you will most likely find the required settings underneath a heading called network or similar in the browser preferences.

Since I mainly use Firefox when doing web development, I will run through the process of setting Firefox to send all requests through the Fiddler proxy.

First open up the Firefox preferences:

Edit -> Preferences

Click the advanced tab then highlight the network tab. Then click the settings button on the right up near the top.

Firefox network settings
Select the radio button labeled “Manual Proxy Configuration” and enter into the boxes:

HTTP Proxy: 127.0.0.1
Port: 8888

Firefox Proxy Settings
Press the OK button and go to a new site in the browser and you should now see the requests appearing over in the fiddler window.

Intercepted requests

This is an approach that works but you need to to change the browse r proxy settings back when you are not running fiddler otherwise you will not be able to access any sites. If your only going to be using Fiddler occasionally I would recommend getting a proper proxy manager extension for Firefox like Foxyproxy. With Foxyproxy simply use the plug in configuration page to “Add New Proxy”.

Foxyproxy Config
Enter the same loop back IP address and port as you proxy server as you did before, then click OK.

foxy_proxy_config2

In your browser to the right of the address bar you should now see a Foxyproxy button. If you right click on this you will be able to easily turn on and off the interception of your browser requests with fiddler.

Further Info:

Fiddler Homepage
Fiddler Video Tutorials
Foxyproxy Homepage