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

相關文章
相關標籤/搜索