2012-04-02 72 views
5

我想在一週內在Android中獲得數據包級數據流量捕獲(.pcap)(如果可能,請在多個文件中)。使用tcpdump在Android中進行24/7數據包捕獲

我以爲我可以通過鯊魚使用tcpdump,但是我發現捕捉在一段時間後會停止。我得到的最大數據包捕獲大約是40MB。我發現tcpdump在更改網絡接口時會停止/崩潰。例如,當手機連接到3G,當我從Shark運行tcpdump時,我可以看到tcpdump運行的過程,直到我開啓WiFi。

在Galaxy S2中,當通過WiFi連接時,我有以下接口(通過在adb外殼中使用netcfg獲得):lo,svnet0,usb0,sit0,eth0。當我通過3G連接時,我得到了pdp0而不是eth0。

有什麼辦法可以讓我24/7全天候運行tcpdump嗎?或者有什麼方法來檢查它何時運行,如果它停止使它再次從Java應用程序運行?檢查tcpdump的進程或類似的東西可能?或者每次網絡改變時監控網絡的狀態並運行tcpdump?

我看過:ReadLine on TCPDump-Buffer sometimes blocks until kill tcpdump,但它並沒有完全解決我的問題。

我正在使用紮根設備。

回答

0

如果你有根源的設備然後使用SimplePacketCapture而不是tPacketCapture。 tPacketCapture會創建一個可能會破壞您的voip應用程序的vpn。

1

我試過了,看看tcpdump交替網絡接口後發生了什麼。
1.open WiFi運行tcpdump-arm
2.run PS | grep的tcpdump的臂
3.關閉WiFi和移動開放接口
4.run PS | grep的tcpdump的臂

我發現,當在手機上交換網絡接口時,tcpdump-arm進程仍在工作,但它不捕獲數據包。

我認爲你需要tcpdump來保持捕獲,即使網絡接口發生變化。 您可以首先看到tutorial of google說的連接變化廣播。
然後,你應該運行「killall」來殺死tcpdump進程l
最後,重新啓動tcpdump進程,如果你沒有指定一個接口,它將監聽新打開的接口。如果你想讓tcpdump返回很快,您可以添加「-l」選項作爲T CPDump-Buffer sometimes blocks until kill tcpdump中的答案。

相關問題