라우터로 사용하는 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에서 매시간.