我編程接口上丟棄數據包的IP表規則(丟棄進來以50%的概率包)。我希望能夠使用bash腳本在過去3秒內獲取丟棄的數據包數量。我已經看過了ifstat,但它似乎沒有認識到丟包正在發生(也許它只是在通過IPtables之後纔會看到數據包)。有沒有其他工具或工具可以用來獲取這樣的數字?如何獲取數據包的數量銳減了超過30秒
編輯:我應該指出,iptables的是一個工具,我使用的模擬高速網絡,可以使收件人開始包丟棄由於數量龐大。這種情況是我想看到並能夠識別的。
我編程接口上丟棄數據包的IP表規則(丟棄進來以50%的概率包)。我希望能夠使用bash腳本在過去3秒內獲取丟棄的數據包數量。我已經看過了ifstat,但它似乎沒有認識到丟包正在發生(也許它只是在通過IPtables之後纔會看到數據包)。有沒有其他工具或工具可以用來獲取這樣的數字?如何獲取數據包的數量銳減了超過30秒
編輯:我應該指出,iptables的是一個工具,我使用的模擬高速網絡,可以使收件人開始包丟棄由於數量龐大。這種情況是我想看到並能夠識別的。
這種用途dumpcap:
dumpcap -i your_interface_here -a duration:3 -w log.pcap | grep '^Packets received/dropped'
dumpcap manpage says:
-a
指定一個標準用來指定Dumpcap什麼時候停止 捕捉文件。的標準是試驗形式的:值,其中測試 是以下之一:duration:value Stop writing to a capture file after value seconds have elapsed.
-i
捕獲接口
-w
收件原始分組數據到outfile。
你可以試試iptables -vL
,它顯示iptable規則丟包數。
s1=$(iptables -vL | grep rule | awk '{ print $1}')
sleep 3
s2=$(iptables -vL | grep rule | awk '{ print $1}')
echo "$(($s2-$s1))"
規則代表iptables中定義的規則。
雖然這可能適用於我使用IPtables丟包的特定場景,但從長遠來看,iptables應該模擬一種情況,即我的網絡以足夠高的速度運行,以致接口開始丟棄數據包。所以在這種情況下使用iptables方法將不起作用,因爲數據包不是按規則丟棄的,而是由於數量龐大導致的。 –
似乎並沒有回答OP的問題。他似乎在尋找丟棄數據包的統計數據,而不是試圖捕獲數據包。 – Shadowfen
@Shadowfen:你確定?恕我直言,運正在尋找'我希望能夠得到丟棄的數據包的數量超過使用bash的script.' – sjsam
的「丟棄的數據包數」過去3秒 - 不捕獲數據包。 – Shadowfen