ネットワークポートごとのトラフィック統計

ネットワークポートごとのトラフィック統計

2台のマシンがあり、2つのアプリケーションがいくつかのネットワークポート(TCPとUDP)で通信しています。送受信するトラフィックをカウントしたいのですが、全体のカウントだけでなく、マシンごと、ポートごと、1日ごとの統計が必要です。ダークスタットただし、1 日あたりの統計は提供されず、全体的なカウンターのみが提供されます。

そのトラフィックをカウントできる他の方法はありますか (2 台のマシンの間にプロキシまたはゲートウェイを配置できます)。

答え1

iptables は、各ルールが何回トリガーされたかに関する統計情報を提供できるため、関心のあるポート (ポート 20 とポート 80 など) に LOG ルールを追加できます。

iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80

その後

iptables -n -L -v

このポートを介して送信されたパケット数とバイト数が表示されます。 もちろん、出力から興味のあるポートを解析する必要があります。

正確な値が必要な場合は、-x を追加します。

iptables -n -L -v -x

答え2

iptables 設定にアカウンティング ルールを追加できます。これらは、ESTABLISHED および RELATED トラフィックを受け入れる前に実行する必要があります。そうしないと、通過するトラフィックをカウントし損ねます。Web トラフィックをカウントするには、次のようなルールを試してください。

iptables -A INPUT -p tcp --dport 80 

チェーンが多数ある場合は、会計チェーンを作成して、他のチェーンとは切り離してレポートしたり、カウンターをゼロにしたりすることができます。

ショアウォールファイアウォールを使用すると、ルール セットに会計ルールを簡単に追加できます。

答え3

出力トラフィック統計を含めることを忘れないでください。

# Port 80 (HTTP).
iptables -A INPUT -p tcp --dport 80
iptables -A OUTPUT -p tcp --sport 80

# Port 443 (HTTPS).
iptables -A INPUT -p tcp --dport 443
iptables -A OUTPUT -p tcp --sport 443


iptables -n -L -v
iptables -n -L -v -x


iptables -n -L -v -x | grep -i "Chain\|:443\|:80"

Chain INPUT (policy DROP 357 packets, 22828 bytes)
 1286265 75076978 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:80
 1305378 75018232 ACCEPT tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp dpt:443

Chain OUTPUT (policy ACCEPT 303516 packets, 94716311 bytes)
     442   255112        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:80
      46    10515        tcp  --  *      *    0.0.0.0/0  0.0.0.0/0  tcp spt:443

答え4

宛先IPごとに使用量が必要かどうかは不明ですが、統計は、インターフェースごとのトラフィック使用量を記録するのに便利なツールです。インストールして、vnstat -u -i eth0監視するインターフェースごとに実行します。その後、1 日あたりの使用量を取得するには、を使用しますvnstat -i eth0 -d

関連情報