Utilizar o Wireshark para Capturar e Filtrar Pacotes: Guia Completo

Wireshark · captura pacotes · análise rede · filtros · tshark · tcpdump · diagnóstico rede  |  ✎ Duarte Spínola  |  2026-07-11

Internet & Redes · Wireshark · Análise de Rede · Captura de Pacotes

Duarte Spínola · actualizado a 11 de Julho de 2026

O Wireshark é a ferramenta gratuita de análise de rede mais usada no mundo. Captura pacotes em tempo real das diferentes interfaces de rede (Ethernet, Wi-Fi, loopback) e exibe-os num formato legível com filtros, código de cores e inspeção detalhada de cada pacote. É essencial para diagnosticar problemas de conectividade, identificar portas e IPs usados por aplicações, detectar tráfego suspeito e analisar protocolos de rede.

Em 2026, o Wireshark está na versão 4.4.x com melhorias significativas desde o artigo original de 2018: suporte para TLS 1.3 decryption, interface renovada, filtros mais rápidos e suporte para novos protocolos. Este artigo foi actualizado para reflectir as versões actuais e inclui alternativas de linha de comandos como tshark e tcpdump.

⚠ **Atenção

** Capturar tráfego de rede pode expor dados sensíveis (passwords, tokens, conteúdo de sessões TLS). Usar apenas em redes que controla ou com autorização explícita. Em ambientes empresariais, coordenar com a equipa de segurança antes de iniciar capturas.

1. Obter e Instalar o Wireshark

1.1 Windows e macOS

Descarregar o instalador em https://www.wireshark.org/ e executar. A instalação inclui o Npcap (Windows) ou requer apenas permissões de administrador (macOS). Em Windows, o Npcap substitui o antigo WinPcap desde a versão 3.0 — permite captura de loopback (tráfego local 127.0.0.1) que o WinPcap não suportava.

1.2 Linux — Ubuntu / Debian

Em 2026, o Wireshark está disponível nos repositórios oficiais — não é necessário PPA de terceiros:

sudo apt update
sudo apt install wireshark

Durante a instalação, responder “Yes” à pergunta “Should non-superusers be able to capture packets?” — isto permite usar o Wireshark sem sudo, adicionando o utilizador ao grupo wireshark:

sudo usermod -aG wireshark $USER

Reiniciar a sessão (logout/login) para que a alteração do grupo tenha efeito.

1.3 Linux — RHEL / Fedora / Rocky / Alma

sudo dnf install wireshark wireshark-gnome

1.4 Linux — Arch / Manjaro

sudo pacman -S wireshark-qt
sudo usermod -aG wireshark $USER

2. Capturar Pacotes

Após iniciar o Wireshark, a janela principal mostra as interfaces de rede disponíveis com um gráfico de actividade em tempo real (traço de ondas junto a cada interface). Para iniciar a captura:

  1. Clique duas vezes na interface pretendida (ex: eth0, enp3s0, Wi-Fi)
  2. Ou seleccione a interface e prima Ctrl+E
  3. Ou clique no ícone azul (barbatana de tubarão) na barra de ferramentas

Wireshark — seleção de interface para captura

Figura 1 — Selecção da interface de rede para iniciar captura

Assim que a captura inicia, os pacotes aparecem em tempo real. Por defeito, o Wireshark tem o modo promíscuo activo — captura não só o tráfego destinado ao computador mas todo o tráfego visível na rede (em switched networks, isto significa apenas o tráfego do próprio segmento).

Nota: Para desactivar o modo promíscuo, aceder a Captura → Options (ou Capture → Options) e desmarcar “Enable promiscuous mode on all interfaces”.

Wireshark — opções de captura e modo promíscuo

Figura 2 — Opções de captura: desactivar modo promíscuo

Para parar a captura, clicar no ícone vermelho “Stop capturing packets” ou premir Ctrl+E novamente.

Wireshark — parar captura de pacotes

Figura 3 — Parar a captura de tráfego

3. Código de Cores

O Wireshark usa código de cores para identificar rapidamente o tipo de tráfego. Por defeito:

Cor Tipo de tráfego Significado
Violeta claro TCP Tráfego TCP normal
Azul claro UDP Tráfego UDP (DNS, streaming, etc.)
Verde claro HTTP Tráfego web não encriptado
Laranja TLS/SSL Tráfego encriptado (HTTPS, etc.)
Cinzento TCP (RST) Conexões rejeitadas/reset
Preto Erros Pacotes com checksum inválido ou outros erros

Para ver, adicionar ou modificar as regras de cor: View → Coloring Rules.

Wireshark — regras de código de cores

Figura 4 — Regras de coloração de pacotes no Wireshark

4. Guardar e Abrir Capturas

Para guardar uma captura: File → Save As e escolher o formato. O formato nativo é .pcapng (suporta metadados, comentários em pacotes e múltiplas interfaces). O formato .pcap (antigo) ainda é suportado para compatibilidade.

Para abrir uma captura existente: File → Open e seleccionar o ficheiro.

Na Wiki do Wireshark é possível encontrar exemplos de capturas de diferentes protocolos (MySQL, TFTP, Telnet, DNS, TLS, etc.) para análise — ver Sample Captures — Wireshark Wiki.

💡 **Dica

Para partilhar uma captura com suporte técnico, usar File → Export Specified Packets** e exportar apenas os pacotes relevantes (com filtro aplicado). Isto reduz o tamanho do ficheiro e evita expor tráfego irrelevante.

5. Filtros de Visualização (Display Filters)

Os filtros de visualização permitem exibir apenas pacotes que correspondem a critérios específicos — sem remover os restantes da captura. Aplicam-se retroactivamente à captura já feita.

A barra de filtro está na parte superior da janela do Wireshark. Aplicar um filtro e premir Enter. Se a barra ficar verde, o filtro é válido; se ficar vermelho, há erro de sintaxe.

Para gerir filtros guardados: Analyze → Display Filters.

Wireshark — gestão de filtros de visualização

Figura 5 — Gestão de filtros de visualização no Wireshark

Mais exemplos em: DisplayFilters — Wireshark Wiki.

Exemplos práticos de filtros de visualização

Mostrar apenas tráfego LAN (192.168.1.0/24) — tráfego interno, sem Internet:

ip.src==192.168.1.0/24 and ip.dst==192.168.1.0/24

Mostrar apenas SMTP (porta 25) e ICMP:

tcp.port eq 25 or icmp

Mostrar tráfego entre IP origem e IP destino específicos:

ip.src==192.168.1.1 and ip.dst==62.28.167.4

Mostrar apenas tráfego HTTP (porta 80):

tcp.port==80

Mostrar tráfego DNS:

dns

Mostrar retransmissões TCP (diagnóstico de latência):

tcp.analysis.retransmission

Mostrar ligações TLS falhadas (handshake errors):

tls.handshake.type == 16

Mostrar tráfego de um MAC address específico:

eth.addr == 00:11:22:33:44:55

Follow TCP Stream

Para visualizar toda a conversação entre cliente e servidor (útil para HTTP, FTP, SMTP): clicar com o botão direito sobre um pacote → Follow → TCP Stream. Abre uma janela com o conteúdo completo da sessão, com cliente e servidor em cores diferentes.

Wireshark — Follow TCP Stream

Figura 6 — Follow TCP Stream: visualizar conversação completa

6. Filtros de Captura (Capture Filters)

Ao contrário dos filtros de visualização (que filtram depois da captura), os filtros de captura determinam que pacotes são capturados desde o início. Usam sintaxe BPF (Berkeley Packet Filter) — a mesma do tcpdump. Isto reduz o tamanho da captura e o consumo de CPU/disco.

Wireshark — filtros de captura e exemplos

Figura 7 — Filtros de captura: exemplos pré-definidos

Para gerir filtros: Capture → Capture Filters. Mais exemplos em: CaptureFilters — Wireshark Wiki.

Exemplos de filtros de captura (sintaxe BPF)

Capturar apenas tráfego TCP porta 80 (HTTP):

tcp port 80

Capturar tráfego de um host específico:

host 192.168.1.100

Capturar tudo excepto ARP e DNS:

not arp and not port 53

Capturar tráfego entre dois hosts:

host 192.168.1.1 and host 62.28.167.4

Capturar apenas ICMP (ping):

icmp

Diferença chave: Filtros de visualização usam sintaxe Wireshark (ip.src==, tcp.port==) e filtram retroactivamente. Filtros de captura usam sintaxe BPF (src host, tcp port) e determinam o que é capturado desde o início. Não são intercambiáveis.

7. Alternativas de Linha de Comandos

Nem sempre é possível ou prático usar a interface gráfica do Wireshark — especialmente em servidores remotos sem ambiente gráfico.

7.1 tshark (CLI do Wireshark)

O tshark é a versão de linha de comandos do Wireshark, com a mesma engine de dissecação de protocolos. Está incluído no pacote Wireshark ou pode ser instalado separadamente:

# Debian/Ubuntu
sudo apt install tshark

# RHEL/Fedora
sudo dnf install tshark

# Arch
sudo pacman -S tshark

Capturar 100 pacotes na interface eth0:

sudo tshark -i eth0 -c 100

Capturar com filtro de captura (BPF):

sudo tshark -i eth0 -f “tcp port 80” -c 50

Capturar com filtro de visualização (display filter):

sudo tshark -i eth0 -Y “http.request.method == GET” -c 50

Gravar captura para ficheiro pcapng:

sudo tshark -i eth0 -w captura.pcapng -c 1000

Ler um ficheiro de captura com filtro:

tshark -r captura.pcapng -Y “ip.addr == 192.168.1.100”

7.2 tcpdump

O tcpdump é a ferramenta clássica de captura de pacotes, disponível em praticamente todos os sistemas Unix/Linux por defeito. Não tem a engine de dissecação do Wireshark mas é leve e ideal para capturas em servidores remotos que depois são analisadas no Wireshark.

Capturar na interface eth0 e gravar para ficheiro:

sudo tcpdump -i eth0 -w captura.pcap

Capturar 100 pacotes de porta 80:

sudo tcpdump -i eth0 port 80 -c 100 -w captura.pcap

Capturar tráfego de um host:

sudo tcpdump -i eth0 host 192.168.1.100 -w captura.pcap

Depois, transferir o ficheiro .pcap para o PC com Wireshark e abrir com File → Open.

8. Exportar Objectos de uma Captura

O Wireshark pode extrair objectos transferidos via HTTP (imagens, ficheiros, documentos) directamente da captura. Útil em análise forense ou para verificar o que foi transferido.

File → Export Objects → HTTP — mostra uma lista de todos os ficheiros transferidos via HTTP na captura, com opção de guardar individualmente ou todos.

Para HTTPS, é necessário a chave privada do servidor ou a chave de sessão TLS (pré-master secret) — ver Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.

9. Estatísticas e Análise

O Wireshark inclui várias ferramentas de estatística acessíveis no menu Statistics:

Ferramenta Função
Capture File Properties Resumo da captura: duração, nº pacotes, tamanho
Conversations Lista de todas as conversações (TCP, UDP, IP) com bytes/pacotes
Endpoints Lista de endpoints com tráfego agregado
I/O Graphs Gráfico de throughput ao longo do tempo
Protocol Hierarchy Distribuição por protocolo (TCP, UDP, HTTP, TLS, etc.)
Flow Graph Diagrama visual de fluxo de pacotes (sequência temporal)

O Flow Graph é particularmente útil para visualizar handshakes TCP, DNS queries/responses e timeouts.

10. Outras Causas e Problemas Comuns

  • “No interfaces available” — em Linux, o utilizador não tem permissões de captura. Verificar se está no grupo wireshark (groups | grep wireshark) ou executar com sudo. Em Windows, verificar que o Npcap está instalado e a correr.
  • Captura não mostra tráfego de outra máquina na rede — em redes switched (a maioria), só se vê o tráfego do próprio segmento. Para ver todo o tráfego, configurar port mirroring/SPAN no switch ou usar um hub (não recomendado em produção).
  • Tráfego HTTPS aparece encriptado — sem a chave TLS não é possível decifrar o conteúdo. Para decifrar, configurar o browser para exportar a TLS session key (variável de ambiente SSLKEYLOGFILE) e importar no Wireshark em Preferences → TLS → (Pre)-Master-Secret log filename.
  • Filtros de captura não aceitam sintaxe Wireshark — filtros de captura usam BPF, não a sintaxe de display filters. tcp.port==80 é display filter; tcp port 80 é capture filter. Confundir os dois é o erro mais comum.
  • Captura muito grande (gigabytes) — usar filtros de captura para reduzir desde o início, ou configurar ring buffer em Capture → Options → Ring buffer with N files of M MB — rotação automática de ficheiros.

11. Como Evitar Problemas e Boas Práticas

  • Usar filtros de captura desde o início — em redes de alta velocidade (1Gbps+), capturar tudo sem filtro pode saturar o disco e o CPU. Usar BPF filters para capturar apenas o tráfego relevante.
  • Configurar ring buffer em capturas longas — em capturas contínuas (monitorização), configurar ring buffer para evitar encher o disco: Capture → Options → Ring buffer with 10 files of 100 MB.
  • Verificar permissões antes de iniciar — em Linux, confirmar que o utilizador está no grupo wireshark. Executar com sudo wireshark não é recomendado por razões de segurança.
  • Usar tshark em servidores remotos — instalar apenas o pacote tshark (sem interface gráfica) em servidores. Capturar para ficheiro e analisar localmente no Wireshark desktop.
  • Anonimizar capturas antes de partilhar — usar editcap (incluído com Wireshark) para remover endereços MAC sensíveis ou usar Edit → Preferences → Name Resolution → desactivar MAC name resolution.
  • Manter Wireshark actualizado — novas versões adicionam dissectors para novos protocolos e corrigem vulnerabilidades. Verificar em Help → Check for Updates.
  • Documentar filtros usados — guardar filtros de visualização e captura personalizados em Analyze → Display Filters / Capture Filters com nomes descritivos. Isto acelera diagnósticos futuros.
  • Não capturar em modo promíscuo sem necessidade — em redes com tráfego sensível, o modo promíscuo captura tráfego de outros equipamentos. Desactivar se só se pretende analisar o tráfego do próprio computador.

Mais informação e documentação oficial: Wireshark Wiki e Wireshark User’s Guide.