Linux(Ubuntu)環境下使用Fiddler


自己的開發環境是Ubuntu, 對於很多優秀的軟件但是又沒有Linux版本這件事,還是有點遺憾的。比如最近遇到一個問題,在分析某個網站的請求路徑和cookie時就遇到了問題。本來Chome瀏覽器自帶的開發者工具對我這種后台開發程序來說足夠了,但是有個場景問題難住了:當網頁有鏈接打開一個新的頁面,而且這個新打開的頁面是在另一個標簽頁中打開,那么原來頁面的控制台不能記錄這個請求數據。我在google找了半天沒找到好的辦法,有個不是辦法的辦法是在chrome地址欄里輸入chrome://net-internals/#events,但是用過就知道太不好用了。一般在這個時候才會想起Windows的好來,起碼可以用Fiddler啊。哦,對,好像有個什么東西,不是可以跨平台跑.NET的程序應用嗎,那個是誰,哦,是Mono。本篇文章介紹下在Linux環境下如何使用Fiddler。

首先,你要有個Mono環境,在Ubuntu環境下安裝很簡單,輸入:

sudo apt-get install mono-complete

下載一個最新的Fiddler for Mono版本,我寫這篇文章時最新版本是這個。下載完成后,解壓到你的習慣放置的隨便一個目錄里。然后cd到目錄下,運行:

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

然后熟悉的界面就看到了,怎么使用的你應該知道了。

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 Mono


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM