Linux:取得するたインタフェースで送受信したパケットカウンター(イーサネット、ipv4,ipv6)
-
20-08-2019 - |
質問
Linuxの場合、どのようにI(プログラム)の取得は以下の窓口 たインタフェース基礎:
- 送受信ethernetフレーム
- 送受信のIPv4パケット,
- 送受信IPv6パケット.
解決
あなたは例えば、この使用iptables
ルールとパケットカウンタを行うことができる必要があります。
# input and output must be accounted for separately
# ipv4, eth0
iptables -I INPUT -i eth0
iptables -I OUTPUT -o eth0
# ipv6, eth0
ip6tables -I INPUT -i eth0
ip6tables -I OUTPUT -o eth0
そして、これらの出力を解析、統計情報を表示します:
iptables -L -vxn
ip6tables -L -vxn
また、あなたはカウンタをリセットしたいときのため-Z
フラグを調べる必要があります。
他のヒント
私のシステムでは、ネットワークインターフェイスに関するさまざまな統計を与える/sys/class/net/eth0/statistics
下のファイルは、存在します。
これは/sys
(SYSFS)がぼんやり最近のLinux搭載想定されている。
cat /proc/net/dev
カウンタ、統計、および情報が含まれているはずです。
きを解析して様々な状況カーネルのファイルだと思いこのリーディングプロジェクト netstat
います。
のmanページが
/proc/net/raw
--RAWソケット情報/proc/net/tcp
--TCPソケット情報/proc/net/udp
--UDPソケット情報
思うべきである非集をすることもに /sys
もあるのですか?たえてくれて本当になかがいいでくなったものです。
のどちらかがちょうどnetstat -i
の出力を解析します。またはstrace netstat -i
、それは情報を探す場所をうまくするためにそれを使用します。
ifconfig
あなたの(バイトおよびパケット)転送されるデータの量を指示します。
次のコマンドは、システム全体の維持のIPv4 / IPv6の統計を与える:
netstat --statistics
nstat -z
cat /proc/net/dev_snmp6/eth0 gives ipv6 stats per interface
できる印字フルネ統計 ethtool:
ethtool -S eth1
Wiresharkのの(Etherealのように使用される)ことのお手伝いをすることができます。
Netstatののは私の第二の推測だろう。
あなたは簡単にMonoDevelopの中にC#であることを行うことができます:
using System.Net.NetworkInformation;
foreach (NetworkInterface ni in interfaces)
{
// perform your calculations
}