Skip to content

How to Use Wireshark — Beginner Tutorial

Your first packet capture in 5 minutes. Learn how to use Wireshark to capture traffic, apply display filters, follow TCP streams, and troubleshoot network issues.

Wireshark Download Team Updated March 2026 Beginner Tutorial

This tutorial assumes you already have Wireshark installed. If not, download Wireshark first (Windows) or see our Mac install guide. The steps below work on all platforms.

Step 1: Your First Packet Capture

Learning how to use Wireshark starts with capturing live network traffic. Here's the quickest path from launch to captured packets.

1

Open Wireshark and pick an interface

When Wireshark starts, you'll see a list of network interfaces with small traffic graphs next to each name. The one with activity (a moving line) is your active connection. It's usually called Wi-Fi or Ethernet. Double-click it to start capturing.

2

Generate some traffic

Open a browser and visit any website. Wireshark will immediately show packets flowing in. Each row is one packet — you'll see hundreds appear within seconds. Don't worry about understanding them all yet.

3

Stop the capture

Click the red square button in the toolbar (or press Ctrl+E). The capture stops and you now have a snapshot of all traffic during that window. You can scroll through it, filter it, and analyze it at your own pace.

Tip: Keep captures short (15-60 seconds) when learning. Long captures generate huge files and make it harder to find what you're looking for.

Step 2: The Wireshark Interface

To understand how to use Wireshark effectively, you need to know its three main panes. The Wireshark interface stacks them vertically.

Packet List (top)

One row per packet. Shows time, source/destination IP, protocol, and a brief summary. Color-coded: green = TCP, blue = DNS, black/red = errors.

Packet Details (middle)

Click any packet to see its layers: Ethernet → IP → TCP/UDP → Application. Expand each layer to inspect individual fields like ports, flags, and payloads.

Packet Bytes (bottom)

Raw hex and ASCII dump of the selected packet. Hover over bytes to highlight the corresponding field in the details pane. Useful for protocol debugging.

Step 3: How to Use Wireshark Display Filters

A real capture contains thousands of packets. Display filters let you focus on what matters. Type a filter in the bar at the top and press Enter. Mastering filters is the key to learning how to use Wireshark productively.

Essential Filter Examples

FilterWhat It ShowsWhen to Use
Protocol Filters
httpHTTP requests and responsesDebugging web traffic
dnsDNS queries and repliesTroubleshooting name resolution
tcpAll TCP trafficGeneral TCP analysis
udpAll UDP trafficStreaming, DNS, VoIP
tlsTLS/SSL encrypted trafficHTTPS connection analysis
icmpPing requests and repliesConnectivity testing
IP Address Filters
ip.addr == 192.168.1.100Traffic to/from this IPFilter to one device
ip.src == 10.0.0.5Traffic from this sourceTrack outbound traffic
ip.dst == 8.8.8.8Traffic to this destinationCheck DNS queries to Google
Port Filters
tcp.port == 80HTTP traffic (port 80)Web traffic analysis
tcp.port == 443HTTPS traffic (port 443)Encrypted web traffic
tcp.port == 22SSH trafficRemote connection debugging
udp.port == 53DNS traffic (port 53)Name resolution issues
Combining Filters
http && ip.addr == 192.168.1.100HTTP from one deviceDebug one machine's web traffic
dns || icmpDNS or ping trafficNetwork diagnostics
tcp.port == 80 && !ip.addr == 10.0.0.1HTTP except from gatewayExclude noisy devices
tcp.flags.syn == 1 && tcp.flags.ack == 0New TCP connections onlySee who's initiating connections
Content Filters
http.request.uri contains "api"HTTP requests with "api" in URLAPI traffic debugging
frame contains "password"Packets containing "password"Security auditing
Capture filters vs display filters: Display filters (shown above) are applied after capture — they hide packets from view but keep them in the file. Capture filters (like tcp port 80) use different syntax and are applied during capture to reduce file size. Start with display filters — they're safer and more flexible.

Step 4: Follow a TCP Stream

Individual packets only show fragments. To see a full conversation between two devices (like an HTTP request and response), use Wireshark's "Follow TCP Stream" feature.

1

Find a packet in the conversation

Apply a filter like http to find web traffic. Click any HTTP packet in the list.

2

Right-click → Follow → TCP Stream

A new window opens showing the entire conversation. Red text = data sent by the client. Blue text = data from the server. You'll see the full HTTP headers, HTML content, or API responses in readable form.

3

Use the stream to understand what happened

This is how you debug slow APIs, inspect headers, check for redirects, or see exactly what data was exchanged. Close the stream window to return to the main view — Wireshark auto-applies a filter showing only packets from that conversation.

Tip: You can also follow UDP and TLS streams the same way. For HTTPS, you'll see encrypted data unless you've configured TLS decryption with the SSLKEYLOGFILE environment variable.

How to Use Wireshark — Common Use Cases

Now that you know the basics, here's how to use Wireshark for real-world problems. Each scenario uses the filters and techniques from the steps above.

Troubleshoot slow websites

Filter: http && ip.addr == [server IP]

Look at time deltas between request and response packets. Large gaps indicate server-side delays. Check for TCP retransmissions (tcp.analysis.retransmission) which signal network issues.

Find what's using your bandwidth

Go to: Statistics → Conversations

Sort by bytes to see which connections transfer the most data. Click a row to filter the capture to that conversation. Identifies background downloads, streaming, or unauthorized traffic.

Check DNS resolution

Filter: dns

See every domain name your machine looked up and the IP addresses returned. Slow DNS responses cause slow browsing. Look for NXDOMAIN (failed lookups) or unusually high response times.

Inspect API calls

Filter: http.request.uri contains "/api/"

Follow the TCP stream to see full request headers, body, and response. Useful for debugging REST APIs, checking authentication headers, or comparing expected vs actual payloads.

How to Use Wireshark — FAQ

Capture filters are applied before packets are saved — they use BPF syntax (like tcp port 80) and reduce the capture file size. Display filters are applied after capture — they use Wireshark's own syntax (like tcp.port == 80) and only hide packets from view. Start with display filters; they're more forgiving since you can always remove them to see all captured data.

By default, no. HTTPS traffic is encrypted and Wireshark shows only the TLS handshake and encrypted payload. To decrypt HTTPS, set the SSLKEYLOGFILE environment variable in your browser, which exports session keys to a file that Wireshark can read. This only works for your own traffic in a controlled environment.

Use ip.addr == 192.168.1.100 to show all traffic to or from that IP. Use ip.src for source-only or ip.dst for destination-only. You can combine with other filters: ip.addr == 192.168.1.100 && tcp.port == 80 shows HTTP traffic from that device.

Use tcp.port == 443 for TCP port 443 (HTTPS), or udp.port == 53 for UDP port 53 (DNS). To filter a range: tcp.port >= 8000 && tcp.port <= 9000. For source port specifically: tcp.srcport == 80.

Go to File → Save As and choose a location. The default format is .pcapng, which preserves all metadata. For compatibility with older tools, save as .pcap instead. You can also export specific packets: apply a display filter first, then use File → Export Specified Packets to save only the filtered results.

Wireshark uses color rules to highlight packet types. By default: green = TCP, light blue = UDP, dark blue = DNS, black/red = TCP errors or malformed packets. You can customize these via View → Coloring Rules. Colors make it easy to spot patterns and anomalies at a glance.

Start a capture on your active interface, then use Statistics → Conversations to see a live overview of all connections. For continuous monitoring, use capture ring buffers (Capture → Options → Output) to automatically rotate files. For server monitoring, use TShark (the command-line version) which runs headlessly and supports scripted analysis.

The basics (capturing, filtering, following streams) take about 30 minutes to learn. That's enough to handle most troubleshooting tasks. Advanced topics like protocol dissection, custom Lua plugins, and TLS decryption take longer. The display filter system is the most important skill — once you're comfortable with filters, you can analyze almost anything.

Next Steps

Now that you know how to use Wireshark for basic captures and filtering, here's where to go next:

  • Need Wireshark? Download Wireshark for Windows, Mac, or Linux
  • Mac user? See our Wireshark for Mac guide for ChmodBPF setup and Homebrew install
  • Bookmark the filter table above — it's a quick reference as you learn how to use Wireshark for more complex analysis