利用 Tcpdump 記錄 Request 數量

某天被人出了一個題目「如何知道 Web Site 實際發出的 Request 數量?」 其實這個題目有好幾種解法,例如: 直接查看 Cloud Host 的報表 開啓 Web Server 的 access.log,再透過 Log 分析來取得 安裝 Network Traffic Analyser 來記錄與分析 其實上述的方法都可以 Google 找到現成的解決方案,但自己卻沒來由的突發奇想,想知道「是否可以由封包記錄中取得這樣的資訊?」經過一番研究,還真的做的到,而且實作起來並不困難,以下就簡單的分享經驗。 實作方式其實很簡單,首先透過 Linux 的指令 tcpdump 過濾並記錄某種特別的封包,並將封包接收資訊另存為 Log File,最後再透過 Parser 去分析 Log 即可。 tcpdump 的指令詳解,可以參考鳥哥的網站,或者自己直接在 command line 去問 man。 $ man tcpdump 最終會使用的 tcpdump 指令如下 $ tcpdump -i eth0 -n 'tcp[tcpflags] & (tcp-push) != 0 and dst net xxx.xxx.xxx.xxx and port 80' -q > requests....

March 17, 2015 · Cheng Wei Chen