2012-12-21 39 views
0

我們試圖調試一個服務器的問題,該服務器必須接收並響應大量持久HTTP連接。在Linux上監視和記錄單個HTTP連接的工具?

理想情況下,我們希望一個工具,可以挑選(任意)一個HTTP連接,並記錄所有的流量,並從它,這樣我們就可以看到正在發生的事情。

不幸的是,我們沒有限制持續連接的數量,我們必須對(通常是幾千條)作出反應的能力,所以我們確實需要工具來縮小其監測到只是一個單一的連接。

任何人都可以推薦這樣的工具,並指導如何說服它做我們需要的東西嗎?

+0

「要求我們推薦或找到工具,圖書館或最喜愛的非現場資源的問題,因爲他們傾向於吸引輿論的答案和垃圾郵件,所以不適合堆棧溢出。相反,[描述問題](http://meta.stackexchange.com/q/139399/)以及迄今爲止已經做了什麼來解決它。「參考:[我可以問什麼問題?](http: –

回答

3

Wireshark是一個很好的開源工具。

+0

它可以運行在無頭服務器上嗎?你確定它可以滿足我們的需求嗎(通過選擇一個持久連接來監控)? – sanity

+0

它確實需要一個GUI,如果你不想在無頭服務器上運行類似VNC(遠程桌面)的東西,使用tcpdump以及它提供的過濾規則來捕獲一個特定的會話到一個文件中,然後加載上限將文件存入工作站上的Wireshark以便於分析。 – Walk

+0

問題是,我不知道具體的對話事件,tcpdump需要確定它想要動態觀看的對話(所有事情都很快發生,只需要幾秒鐘即可獲得數千個併發HTTP連接: - /) – sanity

0

如果直接使用wireshark無法工作,您可以在防火牆/路由器類型框中撥動路由,並讓受監控的連接通過不同的接口(可以使用wireshark或其他任何接口訪問)而不是其他所有與服務器的連接。

0

包的實際捕獲通常由libpcap完成。 有在它上面不同的工具建設:

  • 首先是良好的老tcpdump。它是一個文本工具,它允許您指定您感興趣的數據包併爲每個匹配數據包打印(默認情況下)一行。其實你有很多選擇要做什麼。您也可以轉儲捕獲文件中的所有流量。

  • 然後是wireshark(以前稱爲醚)。這是一個允許你像tcpdump一樣捕獲數據包的GUI,並且有很多方法來分析這些數據。它還可以讀取和分析由tcpdump創建的捕獲文件。

  • 隨着wireshark來tshark(以前稱爲tethereal),這幾乎是wireshark的控制檯版本。

  • 如果你只在數據發送感興趣的包看看tcpflow

還有一些更高級的工具也可以用來攻擊其他主機。 例如ettercap將列出當前的所有連接,並可以顯示在該連接上發送的數據。

它不是從你的問題,究竟你試圖找出完全清楚,但聽起來像tcpflow可能是你想要的。