是否可以使用Wireshark嗅探特定進程的TCP通信,甚至可以通過插件根據進程ID過濾TCP通信?
我正在Windows 7上工作,但是我想也了解Linux解決方案。
是否可以使用Wireshark嗅探特定進程的TCP通信,甚至可以通過插件根據進程ID過濾TCP通信?
我正在Windows 7上工作,但是我想也了解Linux解決方案。
網絡流量(PAINT)/ Wireshark中的進程歸因。它基於Wireshark 1.6.5,並且適用於Windows Vista和更高版本。 它已於2012年12月發布給公眾用於研究目的,從那時起我一直在使用它。不僅有效-您可以通過各列過濾流量-而且速度非常快。
博客文章 網絡流量中的處理歸因 開發人員會詳細解釋。
好吧,如果您不想使用Wireshark,則可以使用 Microsoft Network Monitor開箱即用。
還有一個更好的消息是: Windows 7(或Win2008 R2)及更高版本,您可以從命令行開始/停止捕獲而無需安裝任何內容(甚至可以遠程進行)。
簡短版本:
- 打開提升的命令提示符並運行: “ netsh跟踪開始持續=是捕獲=是tracefile = c:\ temp \ nettrace-boot.etl”(確保您具有\ temp目錄或選擇其他位置)。
- 重現問題或執行
- 打開提升權限的命令提示符並運行:“ netsh trace stop”,您的跟踪記錄將存儲在c:\ temp \ nettrace-boot.el或任何地方。您保存了它。您可以使用netmon在另一台計算機上查看跟踪。
ol>
到2018年為止,Wireshark的另一種建議是,由Microsoft開發的,已取代 Microsoft Network Monitor 的當前解決方案是 Microsoft Message Analyzer。
本文發佈時,最新版本的1.4版已於 2016年10月28日發布,而 Message Analyzer TechNet博客在經過常規修訂後,截至2016年9月一直變得神秘無聲。在此之前發布信息。
在Mac上
sudo unbuffer tshark -lni utun1 2> / dev / null | unbuffer -p grep TCP | tee / dev / tty | unbuffer -p awk -v ip =`ifconfig utun1 | grep inet | awk'{print $ 2}'`'{if($ 3 == ip){print $ 8} else {print $ 10}}'| unbuffer -p grep -owE “ [0-9] {1,5}” | xargs -I {} sh -c'G = $(echo {} | tr -d“ \ r”);須藤lsof -i TCP -OPn -o | grep $ G'
使用 netstat -aptun
for Linux更改 lsof -i TCP -OPn -o
任意數據包通常不與進程關聯。對於已建立的TCP套接字,可以即時查找此信息,但是無法表達捕獲過濾器以將過濾限制為單個進程。
某些選項包括:
udp端口53
或 host example.com 代碼>。
對於後一種方法,我編寫了一些腳本來使其自動化,可以在 https中找到它。 ://github.com/Lekensteyn/netns。正是為此目的而專門設計的,它可以從單個流程(及其子流程)創建網絡捕獲,而不會洩漏其他流量。
多種其他方法,例如使用eBPF和自定義解剖器來添加流程信息。因為可以在Wireshark問題跟踪器中的以下問題中找到針對Windows和macOS的潛在方法: