Tcpdump - 発信および着信UDPパケットの統計

Tcpdump - 発信および着信UDPパケットの統計

tcpdump(設定された時間内に)発信および着信UDPパケットの数を計算できますか?

私はこれについての経験があまりないので、tcpdumpこれを行う方法についての提案は非常に役立ちます。timeout一定時間経過後にプロセスを停止したい場合は、推奨事項が良いという内容を読んだので、時間が経つと停止するつもりtcpdumpです。

しかし、出て来るパケットの数を計算し、UDPパケットのみをフィルタリングするにはどうすればよいですか?

ベストアンサー1

私はtcpdumpこれに(または)を使用しません。代わりに、一定期間のパケット数を計算tsharkするために使用します。iptables

# Prepare two sets of counters and set up the rules
#
iptables -N udp_in
iptables -N udp_out
iptables -A udp_in
iptables -A udp_out

iptables -A OUTPUT --protocol udp -j udp_out
iptables -A INPUT --protocol udp -j udp_in

月経が始まると、次のようにカウンタをリセットできます。

# Reset the counters
#
iptables -Z udp_in
iptables -Z udp_out

月経期間の終わりに、以下のようにカウンターを読むことができます。

# Look at the counters
#
packets_in=$(iptables -nvL udp_in | awk '/all/{print $1}')
packets_out=$(iptables -nvL udp_out | awk '/all/{print $1}')
echo "in=$packets_in, out=$packets_out"

カウンタを読み取るZと同時にフラグを提供することで、すぐにリセットできます。例えば

packets_in=$(iptables -nvLZ udp_in | awk '/all/{print $1}')

フラグメントを1つにまとめて、必要な追加のiptablesチェーン(上記を参照)を作成したと仮定すると、次のものを使用できます。

# Reset the counters
#
iptables -Z udp_in
iptables -Z udp_out

# Wait 10 seconds
#
period=10
sleep "$period"

# Look at the counters
#
packets_in=$(iptables -nvL udp_in | awk '/all/{print $1}')
packets_out=$(iptables -nvL udp_out | awk '/all/{print $1}')

# Report the results
#
echo "During the last $period seconds we saw $packets_in UDP packet(s) in and $packets_out UDP packet(s) out."

おすすめ記事