Introdução
O tcpdump é uma ferramenta de linha de comando para captura e análise de pacotes de rede. Leve, poderosa e presente em praticamente qualquer distribuição Linux, é indispensável para quem deseja diagnosticar lentidão, detectar ataques, inspecionar protocolos ou simplesmente entender o que está fluindo pela rede.
Este post é um guia técnico definitivo, cobrindo desde usos básicos até comandos de detecção de falhas em tempo real, prontos para uso em ambientes críticos.
Instalação
Em distribuições baseadas em Debian/Ubuntu:
sudo apt install tcpdump
Em Red Hat/CentOS:
sudo yum install tcpdump
Captura básica
Captura todo o tráfego da interface de rede:
sudo tcpdump -i eno1
Captura somente os primeiros 96 bytes (por padrão) de cada pacote. Para capturar o pacote completo:
sudo tcpdump -i eno1 -s 0
Salvando para análise posterior
sudo tcpdump -i eno1 -w /tmp/captura.pcap
O arquivo .pcap pode ser aberto no Wireshark para análise gráfica.
Filtros comuns
Filtrar por host de origem ou destino:
tcpdump -i eno1 host 192.168.1.10
Filtrar por porta:
tcpdump -i eno1 port 80
Filtrar por protocolo:
tcpdump -i eno1 icmp
tcpdump -i eno1 udp
tcpdump -i eno1 arp
Filtrar apenas pacotes de entrada:
tcpdump -i eno1 dst host 192.168.1.10
Filtrar apenas pacotes de saída:
tcpdump -i eno1 src host 192.168.1.10
Detectando falhas de rede
Verificar se há broadcast storm
sudo tcpdump -i eno1 ether broadcast
Verificar pacotes multicast suspeitos
sudo tcpdump -i eno1 ether multicast
Detectar requisições ARP em excesso
sudo tcpdump -i eno1 arp
Monitorar pacotes DNS
sudo tcpdump -i eno1 port 53
Análise de flood ou tráfego abusivo
Identificar IPs que mais falam
tcpdump -i eno1 -n | awk '{print $3}' | cut -d'.' -f1-4 | sort | uniq -c | sort -nr | head
Detectar envios repetidos para broadcast (ex: falha em software)
tcpdump -i eno1 ether broadcast | awk '{print $3}' | sort | uniq -c | sort -nr
Combinando filtros
Exemplo: capturar apenas pacotes UDP para broadcast na porta 22222
tcpdump -i eno1 udp and dst port 22222 and ether broadcast
Dicas de performance
- Use
-c <n>para capturar apenas N pacotes:
tcpdump -i eno1 -c 100
- Use
-ttttpara timestamp com data e hora completas - Use
-v,-vvou-vvvpara maior verbosidade
Conclusão
O tcpdump é uma das ferramentas mais precisas e poderosas para diagnóstico de rede em tempo real. Se bem utilizado, substitui tranquilamente soluções visuais mais pesadas como Wireshark em servidores sem interface gráfica. Saber filtrá-lo corretamente é o que diferencia um analista comum de um profissional.
Se você chegou até aqui, significa que já está um passo além na sua visão de redes.
