네트워크 포트별 트래픽 통계

네트워크 포트별 트래픽 통계

몇 개의 네트워크 포트(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 

여러 개가 있는 경우 회계 체인을 생성하여 다른 체인과 별도로 보고하고 카운터를 0으로 만들 수 있습니다.

그만큼해안벽방화벽을 사용하면 규칙 세트에 회계 규칙을 쉽게 추가할 수 있습니다.

답변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인터페이스별 트래픽 사용량을 기록하는 데 유용한 도구입니다. 이를 설치한 다음 vnstat -u -i eth0모니터링하려는 각 인터페이스에 대해 실행하십시오. 그런 다음 일일 사용량을 얻으려면 사용하십시오 vnstat -i eth0 -d.

관련 정보