Linux(Ubuntu)环境下使用Fiddler

本身的开发环境是Ubuntu, 对于不少优秀的软件可是又没有Linux版本这件事,仍是有点遗憾的。好比最近遇到一个问题,在分析某个网站的请求路径和cookie时就遇到了问题。原本Chome浏览器自带的开发者工具对我这种后台开发程序来讲足够了,可是有个场景问题难住了:当网页有连接打开一个新的页面,并且这个新打开的页面是在另外一个标签页中打开,那么原来页面的控制台不能记录这个请求数据。我在google找了半天没找到好的办法,有个不是办法的办法是在chrome地址栏里输入chrome://net-internals/#events,可是用过就知道太很差用了。通常在这个时候才会想起Windows的好来,起码能够用Fiddler啊。哦,对,好像有个什么东西,不是能够跨平台跑.NET的程序应用吗,那个是谁,哦,是Mono。本篇文章介绍下在Linux环境下如何使用Fiddler。chrome

首先,你要有个Mono环境,在Ubuntu环境下安装很简单,输入:浏览器

sudo apt-get install mono-complete

下载一个最新的Fiddler for Mono版本,我写这篇文章时最新版本是这个。下载完成后,解压到你的习惯放置的随便一个目录里。而后cd到目录下,运行:bash

tony@tony:~/devs/fiddler$ mono Fiddler.exe

而后熟悉的界面就看到了,怎么使用的你应该知道了。cookie

Chrome浏览器不用进行任何设置,全部请求都会经过Fiddler自动代理,原理就是:当Fiddler启动时会执行以下脚本:工具

gsettings set org.gnome.system.proxy.https port 8888
gsettings set org.gnome.system.proxy.http port 8888
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.https host '127.0.0.1'
gsettings set org.gnome.system.proxy mode 'manual'

就是用gsettings命令修改系统的http和https代理参数值,同时用model 'manual'打开系统级代理开关。当关闭Fiddler程序时,会把model参数值恢复为none,即不开启代理(这里提示有的同窗,若是你在命令行里运行mono Fiddler.exe后,而后直接kill 9掉该进程,或者直接在窗口crtl+D结束,可能使Fiddler不能正常设置model参数,致使浏览器打开什么网页都是没法访问,遇到这个问题你知道怎么办了吧)。而Chrome浏览器默认就是使用系统代理设置,截图为证:
chrome proxy
而Firefox浏览器没有默认使用系统代理设置,因此手动设置下就行了:
Click Edit > Preferences > Advanced > Network > Settings and choose "Manual Proxy Configuration", Proxy 127.0.0.1, Port 8888, and tick the "Use this proxy server for all protocols" box.网站

参考:Fiddler Monothis

相关文章
相关标签/搜索