我正在嘗試使用tcpdump測試單向tcp捕獲的linux行爲。嘗試捕獲服務器上的單向tcp數據
這種情況是服務器A通過交換機M向目的地Y發送數據包。同時,M也將發送相同的數據包到目的地Z,在那裏我想捕獲所有數據包。 A到Y的連接是一個tcp連接。
爲了合成上述場景,我有3個端子上服務器Ž打開運行下面的命令:
nc -l 0.0.0.8 4444
telnet -b 0.0.0.10 0.0.0.8 4444
tcpdump -i <interface name associated with 0.0.0.8> port 4444
0.0.0.8和0.0.0.10是單獨的插槽中的獨立NIC卡,在這種情況下是插槽1和插槽6。
從telnet會話,我成功地發送數據,但是,tcpdump沒有捕獲任何數據包。如果我從終端3中刪除port 4444
,我會看到來自我的網絡的數據,但從telnet
會話中看不到任何數據。我還應該注意到,我也沒有收到錯誤消息。
我假設,b/c我在互聯網上閱讀它,該telnet創建一個tcp連接,這就是爲什麼我相信tcpdump應該工作。我錯了嗎?我應該做其他事嗎?在這臺服務器上不能使用WireShark或類似的東西。我也試過tcpdump host 0.0.0.8 port 4444
無濟於事。非常感謝您的任何建議。
操作系統可能會繞過網卡,因爲源和目標位於同一臺計算機上,所以tcpdump無法捕獲它。 Unix.SE或SuperUser.com會是這個問題的更好地方,因爲它不是關於編程。 – Barmar