Marcio Cunha

Como inspecionar pacotes de rede com tcpdump no Linux

Aprenda a capturar, filtrar e analisar o tráfego de rede entre serviços no Linux usando o tcpdump para diagnosticar falhas rapidamente.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • O tcpdump intercepta o tráfego de rede bruto diretamente da placa de rede para análise detalhada.
  • Filtros BPF evitam poluição visual ao isolar endereços IP, portas ou protocolos específicos.
  • Salvar arquivos de captura permite uma investigação minuciosa posterior em ferramentas gráficas.
  • O diagnóstico rápido de microsserviços depende da leitura correta de flags TCP e payloads.
  • Monitorar a interface correta evita falsos negativos durante a solução de problemas de rede.

Por que o tcpdump é o canivete suiço do diagnóstico de rede

Quando dois microsserviços param de conversar e os logs da aplicação apenas repetem mensagens genéricas de erro de conexão, a dúvida surge: a culpa é do código, do firewall ou da infraestrutura? É exatamente nesse momento que o tcpdump entra em cena como a ferramenta definitiva de linha de comando no Linux. Na prática, ele funciona como um gravador de áudio invisível que intercepta todos os pacotes de dados — os pequenos blocos em que a informação é dividida para trafegar pela rede — que entram e saem da sua máquina.

Diferente de ferramentas gráficas complexas, o tcpdump roda direto no terminal, o que o torna indispensável para inspecionar servidores remotos via SSH onde não existe interface visual. Para quem já lida com diagnósticos complexos, saber extrair informações precisas do tráfego de rede complementa habilidades essenciais, assim como saber ler logs gigantescos no Linux sem travar o sistema ao investigar incidentes de alta severidade em produção.

Preparando o terreno e escolhendo a interface correta

Antes de disparar comandos aleatórios, você precisa saber qual porta de rede está ouvindo o tráfego. No Linux, cada conexão física ou virtual passa por uma interface de rede, como eth0 para a placa principal ou lo para o tráfego local (loopback). Se você tentar escutar a interface errada, verá apenas silêncio digital, mesmo que sua aplicação esteja gerando milhares de requisições por segundo.

Para listar as interfaces disponíveis no sistema e escolher o alvo correto, execute o comando padrão de listagem:

ip link show

Com a interface identificada, o comando mais básico do tcpdump consiste em abrir a escuta sem filtros. Na prática, isso vai despejar na tela todos os pacotes que passam pela placa, gerando uma torrente rápida de dados que costuma ser difícil de acompanhar a olho nu. Por isso, raramente rodamos o comando puro em ambientes de produção movimentados.

Filtrando o tráfego para achar o erro rapidamente

O grande segredo para dominar o tcpdump não está em capturar tudo, mas sim em aplicar filtros inteligentes baseados no padrão Berkeley Packet Filter (BPF). Esses filtros agem como uma peneira rigorosa que descarta todo o ruído de fundo e deixa passar apenas o tráfego relevante para a sua investigação, como uma porta específica ou o IP de um microsserviço que parou de responder.

Se você precisa inspecionar apenas as requisições destinadas à porta 443 de um serviço HTTPS, ou verificar se o banco de dados na porta 5432 está aceitando conexões, a sintaxe de filtro se torna sua melhor aliada. Veja como estruturar esse comando na prática:

sudo tcpdump -i eth0 -nn 'port 5432'

A flag -nn evita que o utilitário perca tempo precioso tentando traduzir endereços IP em nomes de domínio ou portas numéricas em nomes de serviços padrão (como converter 80 para http), acelerando drasticamente a exibição dos resultados. Esse cuidado com a performance do diagnóstico é análogo ao monitoramento rigoroso de discos NVMe no Linux, onde cada milissegundo de atraso na resposta do sistema afeta a percepção do usuário final.

Interpretando os pacotes e encontrando o gargalo

Cada linha impressa pelo tcpdump conta a história de um microssegundo na comunicação entre servidores. Entender a sopa de letrinhas das flags TCP — como [S] para SYN (início de conexão), [S.] para SYN-ACK (confirmação) e [F] para FIN (encerramento) — revela exatamente onde a comunicação travou. Se um serviço envia repetidos pacotes [S] sem receber resposta, você encontrou uma regra de firewall bloqueando a porta ou um serviço fora do ar.

Muitas vezes, a análise em tempo real na tela do terminal é rápida demais e perdemos o momento exato da falha intermitente. Para resolver isso, podemos gravar o tráfego bruto em um arquivo digital e transferi-lo para uma análise mais calma, ou até mesmo inspecionar os fluxos de rede combinando essa técnica com a decriptação de tráfego HTTPS usando chaves de sessão no Wireshark.

Para salvar o arquivo de captura de forma segura sem corromper os pacotes binários, utilize a flag -w:

sudo tcpdump -i eth0 -nn -w diagnostico_rede.pcap 'host 192.168.1.50 and port 8080'

Considerações finais sobre o diagnóstico de rede

O domínio do tcpdump transforma o engenheiro ou administrador de sistemas de um adivinhador de erros em um investigador cirúrgico. Saber isolar interfaces, aplicar filtros BPF precisos e interpretar o ciclo de vida dos pacotes TCP elimina horas de frustração ao debugar microsserviços distribuídos em ambientes Linux.

Compreender o fluxo invisível dos dados que sustentam a infraestrutura moderna garante resiliência operacional e acelera a resolução de incidentes críticos. Pratique esses comandos em ambientes de homologação, familiarize-se com a leitura das flags e mantenha essa ferramenta poderosa sempre à mão no seu cinto de utilidades do terminal.