Linux ルーターを通過するすべての接続のバイト数を計算します。

Linux ルーターを通過するすべての接続のバイト数を計算します。

ルーターとして使用するLinuxボックスがあります。

どの接続がどのくらいのデータを送受信したかを測定する方法は?

毎時間、次のようなものが欲しい。

src_addr   src_port  dst_addr         dst_port  proto  packets  bytes
10.1.2.3   34567     100.101.102.103  443       tcp    101      150 KiB
10.1.2.3   53        1.1.1.1          53        udp    21       11 KiB
10.1.2.4   45678     100.101.102.103  443       tcp    452      220 KiB
10.1.2.4   56789     200.201.202.203  25        tcp    105      50 KiB
10.1.2.4   53        1.1.1.1          53        udp    20       10 KiB

しかし、何千行もあります。

理想的にはデータベースに直接書き込まれますが、.csvから時間ごとにインポートするのは問題ありません。

時間ごとに集計されたデータを提供できる効率的な既存のLinuxツールはありますか?

それともCとlibpcapを使って自分で構築する必要がありますか?

答え1

iftopは接続報告のための優れたソリューションです。他にも多くの存在がある:iptraf-ng、nethog、bmon...

アレクサンダーによるとiftopを使ってテキストを出力する方法を説明しました。、あなたの解決策は次のとおりです

iftop -t -s 3600 > log-(date +\%Y\%m\%d\%H\%M\%S).txt

crontabで毎時間。

答え2

いいねvnstat(返品GitHubから)。私はそれがあなたが尋ねるすべての質問を満足すると思います。少なくともそれはそうです設定可能、積極的に維持管理します。

リソースを大量に消費することなく、小規模なシステムでコンピューティングサイクルでより良いタスクを実行できるために使用します。

関連情報