여러 네트워크 포트(TCP 및 UDP)를 통해 서로 통신하는 두 개의 응용 프로그램이 있는 두 대의 컴퓨터가 있습니다. 그들이 보내고 받는 트래픽을 계산하고 싶습니다. 총 개수도 필요할 뿐만 아니라 하루에 머신당 각 포트에 대한 통계도 필요합니다. 나는 노력했다어두운 상태, 단, 일일 통계는 제공하지 않고 전체 카운터만 제공합니다.
트래픽을 계산하는 다른 방법이 있습니까(두 시스템 사이에 일부 프록시나 게이트웨이를 배치할 수 있음).
답변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 트래픽을 수락하기 전에 발생해야 합니다. 그렇지 않으면 통과하는 트래픽 계산을 놓칠 수 있습니다. 네트워크 트래픽을 계산하려면 다음 규칙을 사용해 보세요.
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
모니터링하려는 각 인터페이스에 대해 설치하고 실행하십시오. 그런 다음 일일 사용량을 얻으십시오 vnstat -i eth0 -d
.