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で毎時間。

おすすめ記事