두 개의 네트워크 카드가 있는 라우터로 구성된 컴퓨터가 있습니다. 하나는 인터넷에 연결되고 다른 하나는 로컬 네트워크 스위치에 연결됩니다.
다음 파일을 읽는 스크립트를 생성하여 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 계정을 구현했습니다.