O Wireshark é uma das ferramentas mais utilizadas para análise de tráfego em redes IP. Ele permite capturar, inspecionar e dissecar pacotes em múltiplas camadas do modelo OSI, oferecendo visibilidade detalhada sobre protocolos, sessões e comportamento de aplicações. Além disso, seu mecanismo de filtros de exibição possibilita reduzir grandes volumes de dados a conjuntos extremamente específicos, o que torna a investigação mais rápida e precisa.

Em ambientes corporativos, onde capturas facilmente ultrapassam milhares de pacotes por segundo, a capacidade de aplicar filtros eficientes não é apenas conveniente — ela é indispensável. Portanto, dominar a sintaxe e a lógica dos filtros do Wireshark impacta diretamente a produtividade de times de redes e segurança.
Neste artigo, organizo filtros essenciais por contexto operacional e apresento exemplos práticos que ajudam a estruturar análises técnicas com maior eficiência.
1. Filtros por endereço IP e segmentação de tráfego
O primeiro passo em qualquer troubleshooting consiste em delimitar o escopo da captura. Sem esse recorte inicial, a análise se torna imprecisa.
Para visualizar todo o tráfego relacionado a um host específico:
ip.addr == 10.0.0.1
Esse filtro exibe pacotes onde o IP aparece como origem ou destino. Entretanto, se o objetivo for analisar toda uma sub-rede:
ip.addr == 10.0.0.0/24
Assim, você inclui todos os hosts dentro do bloco especificado.
Quando for necessário isolar um fluxo específico entre dois endpoints, utilize:
ip.src == 10.0.0.1 && ip.dst == 10.0.0.2
Dessa forma, você analisa apenas o tráfego originado em 10.0.0.1 com destino a 10.0.0.2.
Também é possível excluir tráfego específico:
!(ip.addr == 10.0.0.1)
Portanto, você elimina um host da visualização e reduz ruídos na captura.
2. ICMP, TCP e UDP: análise de transporte
Após delimitar os endereços, o próximo passo envolve o protocolo de transporte.
Para exibir apenas mensagens ICMP de destino inalcançável:
icmp.type == 3
Esse filtro auxilia na identificação de problemas de roteamento ou bloqueios intermediários.
Caso deseje visualizar apenas tráfego TCP ou UDP:
tcp or udp
Se a análise exigir foco em uma porta específica:
tcp.port == 80
Além disso, você pode filtrar portas de origem abaixo de 1000:
tcp.srcport < 1000
Esse padrão ajuda a identificar conexões iniciadas por serviços conhecidos.
Para acompanhar o estabelecimento de conexões TCP, utilize:
tcp.flags.syn == 1
Esse filtro mostra pacotes SYN. Por outro lado, para identificar pacotes com SYN e ACK simultaneamente:
tcp.flags == 0x012
Quando houver suspeita de instabilidade, use:
tcp.analysis.retransmission
Esse filtro revela pacotes retransmitidos e facilita a identificação de perda de pacotes ou latência excessiva.
3. HTTP, DNS e TLS: camada de aplicação
Em análises de aplicação, os filtros tornam-se ainda mais estratégicos.
Para exibir tráfego HTTP ou DNS:
http or dns
Se o objetivo for visualizar apenas requisições GET:
http.request.method == "GET"
Já para identificar respostas HTTP com erro 404:
http.response.code == 404
Também é possível filtrar por host específico:
http.host == “www.domain.com”
No contexto de DNS, para exibir respostas contendo determinado nome:
dns.resp.name == cnn.com
Ou ainda para filtrar pelo tipo de consulta (tipo 1 = consulta padrão, tipo 2 = consulta NS):
dns.qry.type==2
Em conexões seguras, você pode restringir a visualização ao handshake TLS:
tls.handshake
Ou ainda identificar apenas pacotes Client Hello:
tls.handshake.type == 1
Assim, você consegue acompanhar a negociação inicial de sessões criptografadas.
4. DHCP, MAC Address e VLAN
Problemas de conectividade frequentemente começam na camada de acesso. Portanto, filtros relacionados a DHCP e MAC address ajudam a diagnosticar falhas iniciais.
Para exibir tráfego DHCP associado a uma sub-rede:
dhcp and ip.addr == 10.0.0.0/24
Caso precise rastrear um cliente específico pelo MAC:
dhcp.hw.mac_addr == 00:11:22:33:44:55
Também é possível visualizar todo o tráfego associado a um MAC:
eth.addr == 00:11:22:33:44:55
Em ambientes segmentados por VLAN:
vlan.id == 100
Esse filtro permite validar encapsulamento 802.1Q e verificar isolamento lógico.
5. Filtros avançados e redução de ruído
Capturas extensas exigem técnicas adicionais para refinamento.
Para localizar pacotes maiores que 1000 bytes:
frame.len > 1000
Se a necessidade for encontrar palavras específicas dentro dos frames:
frame contains "keyword"
Também é possível aplicar filtros baseados em offset hexadecimal:
eth[0x47:2] == 01:80
Esse tipo de filtro atende a cenários avançados de inspeção binária.
Por fim, para remover protocolos comuns de background:
!(arp or icmp or stp)
Consequentemente, a visualização fica mais limpa e focada no tráfego relevante.
Conclusão
O poder do Wireshark não está apenas na capacidade de capturar pacotes, mas principalmente na eficiência com que você filtra e interpreta os dados. Portanto, dominar filtros de exibição representa um ganho operacional significativo.
Filtros bem aplicados reduzem tempo de análise, eliminam ruído e permitem identificar padrões com maior clareza. Além disso, a combinação de critérios por endereço, protocolo, porta, aplicação e estrutura de frame amplia a precisão técnica.
Profissionais de redes e segurança que utilizam o Wireshark diariamente devem tratar os filtros como parte essencial da metodologia de troubleshooting. Consequentemente, quanto maior o domínio dessas expressões, maior a capacidade de diagnosticar problemas complexos com rapidez e segurança.