Linux:取得するたインタフェースで送受信したパケットカウンター(イーサネット、ipv4,ipv6)

StackOverflow https://stackoverflow.com/questions/349576

  •  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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top