Tenho duas máquinas com duas aplicações que conversam entre si em poucas portas de rede (TCP e UDP). Quero contar o tráfego que eles enviam e recebem. Preciso não apenas da contagem geral, mas de estatísticas por máquina, por porta, por dia. tenteidarkstat, mas não fornece estatísticas por dia, mas apenas contadores gerais.
Existe outra maneira de contar esse tráfego (posso colocar algum proxy ou gateway entre essas duas máquinas).
Responder1
O iptables pode fornecer estatísticas sobre quantas regras foram acionadas, para que você possa adicionar regras LOG nas portas de interesse (digamos, porta 20 e porta 80):
iptables -A INPUT -p tcp --dport 22
iptables -A INPUT -p tcp --dport 80
e então
iptables -n -L -v
fornecerá o número de pacotes e bytes enviados por essas portas. Claro que você terá que analisar a partir da saída as portas que lhe interessam.
Se você precisar de valores exatos, adicione um -x:
iptables -n -L -v -x
Responder2
Você pode adicionar regras de contabilidade à configuração do iptables. Isso deve ocorrer antes de você aceitar o tráfego ESTABELECIDO e RELACIONADO ou você perderá a contagem do tráfego que passa. Para contar o tráfego da web, tente uma regra como:
iptables -A INPUT -p tcp --dport 80
Se você tiver vários deles, talvez queira criar uma cadeia de contabilidade para poder relatar e zerar contadores isoladamente de outras cadeias.
OParede CosteiraO firewall permite adicionar facilmente regras de contabilidade ao seu conjunto de regras.
Responder3
Não se esqueça de incluir estatísticas de tráfego de saída.
# 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
Responder4
Não está claro se você precisa de uso por IP de destino, masvnstaté uma ferramenta útil para registrar o uso do tráfego por interface. Instale-o e execute-o vnstat -u -i eth0
para cada interface que deseja monitorar. Para então obter o uso por dia, use vnstat -i eth0 -d
.