2011-11-29 93 views
0

我有2個服務器(serv1,serv2)進行通信,我試圖嗅探符合從serv1傳輸到serv2的某些標準的數據包。 Tshark安裝在我的桌面(桌面1)上。我寫了下面的腳本:使用tshark嗅探數據包

while true; do 
tshark -a duration:10 -i eth0 -R "(sip.CSeq.method == "OPTIONS") && (sip.Status-Code) && ip.src eq serv1" -Tfields -e sip.response-time > response.time.`date +%F-%T` 
done 

這個腳本似乎當SERV1運行一切正常(因爲SERV1正在發送數據包serv2上)。但是,當我嘗試在desk1上運行它時,它無法捕獲任何數據包。他們都在同一個LAN上。我錯過了什麼?

回答

0

如果您的局域網是交換網絡(大部分是)或您的桌面網卡不支持混雜模式,那麼您將無法看到任何數據包。驗證這兩件事情。

+0

即使在serv1上運行相同的腳本時,這是否會成爲問題?我最初的猜測是-i eth0會導致問題。我的命令看起來好嗎? –

+0

那麼,交換網絡的問題將不會成爲serv1的一個因素,因爲數據包打算流入/流出該機器(所以交換機當然會向它發送流量)。在desk1上,交換機(如果存在)不會將您的機器識別爲數據包的合法接收方,所以不會將它們發送給您。這是運行在serv1和desk1之間的主要區別 –

+0

好的,這清除了很多東西。謝謝 –

1

如何使用錯誤的tcpdump來捕獲所有來自線路的流量。我建議做的只是捕獲界面上的數據包。不要在捕獲級別過濾。您可以過濾pcap文件後。這樣

tcpdump -w myfile.pcap -n -nn -i eth0 
+0

問題是他在一個以太網交換機上。所述開關的額外配置是必需的 –

2

假設的東西,要麼SERV1或serv2上是相同的物理以太網交換機作爲分享幫助,您可以通過使用一種稱爲SPAN功能SERV1和serv2上之間嗅過境交通(交換機端口分析器)。

假設你的服務器上FastEtheret4/2,在您的桌面上的FastEthernet4思科交換機/ 3 ......你應該Telnet或SSH到交換機並輸入以下命令......

4507R#configure terminal 
Enter configuration commands, one per line. End with CNTL/Z. 

4507R(config)#monitor session 1 source interface fastethernet 4/2 

!--- This configures interface Fast Ethernet 4/2 as source port. 

4507R(config)#monitor session 1 destination interface fastethernet 4/3 

!--- The configures interface Fast Ethernet 0/3 as destination port. 



4507R#show monitor session 1 
Session 1 
--------- 
Type : Local Session 
Source Ports : 
Both : Fa4/2 
Destination Ports : Fa4/3 


4507R# 

這功能不僅限於Cisco設備... Juniper/HP/Extreme和其他企業以太網交換機供應商也支持它。