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에서 매시간.

답변2

좋아요vnstat(반품GitHub에서). 나는 그것이 당신이 묻는 모든 질문을 만족한다고 생각합니다. 적어도 그것은 그렇습니다구성 가능, 적극적으로 유지관리합니다.

리소스를 많이 소모하지 않고 소규모 시스템에서 컴퓨팅 주기로 더 나은 작업을 수행할 수 있기 때문에 사용합니다.

관련 정보