在tcpdump中,如何捕獲所有傳入我的機器的傳入IP流量?我不在乎我的本地流量。在tcpdump中捕獲傳入流量
如果我只是說:
tcpdump ip dst $MyIpAddress and not src net $myIpAddress/$myNetworkBytes
...還是我失去了一些東西?
在tcpdump中,如何捕獲所有傳入我的機器的傳入IP流量?我不在乎我的本地流量。在tcpdump中捕獲傳入流量
如果我只是說:
tcpdump ip dst $MyIpAddress and not src net $myIpAddress/$myNetworkBytes
...還是我失去了一些東西?
在Bash shell中嘗試這個辦法:
tcpdump -i eth0 tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
或此相應制劑:
tcpdump -i eth0 ip proto \\tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
在我的系統解析爲類似:
tcpdump -i eth0 tcp and dst host 10.0.0.35 and not src net 10.0.0.0/24
如果你想看到到達目標主機的所有流量,而不僅僅是TCP協議流量:
個tcpdump -i eth0 dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
一些注意事項:
我改變$myIpAddress/$myNetworkBytes
到$MyNetworkAddress/$myNetworkBytes
。這是因爲您規則的明顯目的是從本地網絡中排除流量,並且指定網絡地址的correct way用於指定網絡的最低IP地址(稱爲網絡地址)/網絡掩碼。如果指定爲以$ myNetworkBytes的網絡掩碼的網絡範圍內的最低地址以外的任何地址,那麼你會得到錯誤信息:
tcpdump: non-network bits set in "10.0.0.3/24"
在第一個例子「TCP」是關鍵字(man pcap-filter)中的,而在第二個示例中,'tcp'用作的值的ip proto
。爲了表明第二個實例中的'tcp'是一個值而不是另一個'tcp'關鍵字,我需要用雙反斜槓來轉義'tcp'。它必須是一個雙反斜槓,以便Bash解釋器將一個反斜槓傳遞給libpcap解釋器(Bash吃第一個反斜槓,libpcap得到第二個反斜槓)。爲了減少雙重轉義混淆,可能很適合進入雙引用命令的整個表達式部分習慣:
tcpdump -i eth0 "ip proto \tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes"
爲了避免警告和驚喜,這是更好地使用接口說明符-i eth0
或任何界面,你的願望。並非所有接口都必須分配IP地址,並且沒有特定的情況,您可能會看到您無意看到的流量。在運行網絡管理器的系統上尤其如此,該系統似乎對於要添加什麼接口以及何時添加接口有自己的想法。
嘿,謝謝你的回答。我對UDP流量也很感興趣,這就是爲什麼我沒有在上面的過濾器中加入'tcp'的原因。我相信這是微不足道的,但是你能否澄清爲什麼我需要放置我的網絡地址而不是我的IP地址?一旦我指定了網絡字節的數量,它不應該具有相同的效果嗎? – 2012-04-25 11:44:06
編輯回答地址評論 – 2012-04-25 12:11:45
以上都不適用於具有多個ips的盒子。
這個工作對我非常好DNS服務器上綁定了多個IP:
tcpdump -l -n -i pub dst port 53 and inbound
可能無法在的tcpdump
所有版本的工作,雖然。
# tcpdump -V
tcpdump version 4.1-PRE-CVS_2012_03_26
libpcap version 1.4.0
欣賞「入站」關鍵字 – bbonev 2017-08-17 23:19:55
-Q方向 --direction =方向 選擇發送/接收哪些數據包應該 捕獲方向的方向。可能的值是in',
out和inout。在所有平臺上均不可用 。
不錯!我不知道這個選項。 – 2017-02-15 08:26:07
什麼是「icoming IP流量」?包廣播地址也進來了。 – harper 2014-11-13 15:10:00