Tool · Diagnostics
Wireshark OPC UA dissector
| Vendor | Wireshark project; dissector contributed by ascolab GmbH |
|---|---|
| Cost | Free and open source |
| Platforms | Windows, Linux, macOS |
| Type | Diagnostics |
Wireshark dissects OPC UA natively. The binary dissector ships in the Wireshark source tree at plugins/epan/opcua and needs no installation, so you filter on opcua and read the UA-TCP, secure-channel and binary layers directly. Encrypted channels are opaque unless you can supply dumped session keys.
What you actually use it for
- Deciding whether a request ever left the client, which no client-side log can tell you reliably.
- Reading the Hello and acknowledge exchange to see the negotiated message sizes and chunk counts before blaming the application.
- Watching GetEndpoints and the returned endpoint URLs, which is the fastest way to catch a server advertising a hostname nobody can resolve.
- Seeing the actual error response when a client library reports a generic failure.
- Confirming reverse-connect behaviour: whether the ReverseHello arrived, and what the client did next.
- Measuring real publish cadence against the interval you think you configured.
Walkthrough
- Capture on the right interface, at the right endCapture where the traffic actually passes. If the client is in a container, capture in its network namespace or on the host bridge, not on an unrelated interface. Getting this wrong produces an empty capture and a wrong conclusion.
- Apply the opcua display filterType opcua in the display filter. The dissector is built in, so there is nothing to install. If nothing matches, check whether the traffic is on a non-standard port and use Decode As to map that port to OPC UA.
- Read the connection handshake firstFind the Hello and acknowledge messages and note the negotiated buffer sizes and chunk limits. A large-message failure often shows up here as a limit far lower than the application expects.
- Follow the secure channel and session establishmentWatch OpenSecureChannel, then CreateSession and ActivateSession. Where a connection fails, the last successful step tells you which layer to investigate: transport, channel, session or authentication.
- Accept that encrypted payloads are opaque, and plan for itOn a signed and encrypted channel you see message framing but not content. Either reproduce the fault on an unsecured endpoint in a lab, or use tooling that dumps session keys and decodes the capture with them. The reference stack's diagnostics tooling exists for exactly this.
- Capture to a file and analyse afterwardsUse a ring buffer with a size limit on a gateway so you can leave a capture running until an intermittent fault recurs, then analyse the file offline rather than watching a live window.
- Check the capture is legal and authorised firstPacket capture on an operational network usually needs authorisation, and captures can contain credentials and process data. Get permission and agree retention before you start, not after.
What it will not do
- Encrypted traffic is unreadable without dumped keys, and most production channels are encrypted.
- It shows you the wire, not intent. It cannot tell you why an application chose a parameter, only what it sent.
- PubSub over UDP or Ethernet needs the right capture point and privileges, and multicast may not reach your capture host at all.
- Captures on a busy link are large, and analysis time grows faster than the file does.
- Capture requires elevated privileges and, on plant networks, authorisation you may not have.
Alternatives
| Instead of this | When |
|---|---|
| ua-netstandard-mcp-server | It combines client operations with OPC UA aware capture, key dumping and decoding of an encrypted capture, which plain Wireshark cannot do alone. |
| opcua-commander | When the question is what the server holds rather than what crossed the wire, and you want an answer in seconds. |
| mqtt-explorer | When the fault is on the northbound MQTT side rather than in the OPC UA session. |
Verify before you rely on this: Dissector coverage improves release by release and older Wireshark builds handle newer message types less completely, so confirm behaviour against your installed version rather than assuming. Confirm too that packet capture is permitted on the network you are working on and that your capture retention meets the site's data-handling policy, since captures can contain credentials and production data.
Related status codes
Concepts on this page
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.