本身的開發環境是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瀏覽器默認就是使用系統代理設置,截圖爲證:
而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