2つのネットワークカードを持つルーターで構成されたコンピューターがあります。一方はインターネットに接続され、もう一方はローカルネットワークスイッチに接続されます。
次のファイルを読み取るスクリプトを作成して、NICの現在のスループットを取得できることを知っています/sys/class/net/[dev]/statistics
。
しかし、各クライアントがどのくらいのインターネット帯域幅を使用しているかを確認できるように、ネットワーク上の各クライアントのスループットを取得することは可能ですか?
答え1
各IPアドレスの使い方を理解するには、iptableルールを作成し、FORWARDチェーン内の各IPアドレスのiptables統計カウンタを追跡します。
からインポートネットワーク統計にiptablesとrrdtoolを使用する
iptables -N stats iptables -A stats -s 192.168.0.3 -o $WAN -j RETURN iptables -A stats -d 192.168.0.3 -i $WAN -j RETURN iptables -A stats-s 192.168.0.4 -o $WAN -j RETURN iptables -A stats -d 192.168.0.4 -i $WAN -j RETURN iptables -A stats -o $WAN -j RETURN iptables -A stats -i $WAN -j RETURN iptables -A FORWARD -j stats
実際、私は過去にこの方法を使用して、iptablesを介して何千人もの顧客の帯域幅使用量を追跡するISPを運用した後、Ciscoルータからデータを取得するNetflowアカウントを実装しました。