我可以使用什麼來監控和記錄傳入/傳出遠端主機的流量?
我執行一個 Web 伺服器(VPS 上的 Debian Squeeze),託管公司提供的圖表始終顯示,與傳出流量相比,傳入伺服器的流量大約是傳出流量的兩倍。我對此有點困惑,所以我想在機器上執行某種日誌記錄實用程序,它不僅可以確認上傳/下載數據,還可以通過相關的遠端主機將它們分開,所以我可以看看是否有大部分傳入流量來自一個特定來源。
我懷疑大部分傳出流量都通過 Apache,但傳入流量可能主要通過 Apache,或者可能由其他腳本和 cron 作業主導,所以我更喜歡在介面級別監控流量的工具,而不是 Apache 內部的東西.
理想情況下,我想要一個可以讓我執行幾天的工具,然後返回並為傳入和傳出流量獲取“每個遠端主機的字節數”的輸出。
這是否可以通過標準 Linux 工具和一些配置(如果可以,如何?)或專業程序(如果可以,哪個?)
ntop可能是您執行此操作的最佳解決方案。它旨在長期執行並準確擷取您正在尋找的內容。
它可以向您顯示最常使用的遠端目標、發送到/從的流量、正在使用的協議和埠等。如果您在路由器上執行它,它可以對源主機執行相同操作,這樣您就可以看到本地客戶的統計數據也相同。
然後,它使用 Web GUI 來導航和顯示此資訊。
如果你有 root,你可以使用
tcpdump
並抓取所有東西。然後,您可以在Wireshark中將其拉起並進行分析。$ sudo tcpdump -i <interface> -w mycapture.tcpdump
…然後在你受夠了之後按 ctrl-c。
screen
如果您需要分離等,請在會話中執行。預設情況下,它只會擷取每個數據包的第一部分,但由於您最感興趣的是源分析,所以應該沒問題。如果您喜歡冒險,還有很多其他的 tcpdump 選項。
編輯:事實上,一旦載入到 Wireshark,你就可以使用菜單選項Statistics | **IP 地址…**並通過計數/速率/百分比獲得一個很好的流量摘要: