故障排查

OPC UA 连不上?6 个常见原因

几乎每一起“OPC UA 客户端连不上”的案例都归结为六件事之一:端点错误、端口被阻断、安全模式不匹配、证书未受信任、凭据错误,或节点访问问题。按此顺序逐项排查,就能解决绝大多数故障。

第一步:用一个已知可用的参考客户端复现该连接,例如UaExpert从与你的网关相同的机器和网段进行。如果 UaExpert 能连上而你的应用连不上,问题在你的应用/配置,不在服务器。

1. 端点 URL 错误

端点必须完全正确,包括方案、主机和端口:

opc.tcp://192.168.10.20:4840        # correct
opc.tcp://plc-server:4840/UADiscovery
http://192.168.10.20:4840           # wrong scheme
192.168.10.20                        # missing scheme/port
  • 使用服务器的可路由 IP 或可解析主机名:除非你就在服务器上,否则不要用 localhost。
  • 确认端点从网关实际所在的位置可达,而不只是从一台工程笔记本电脑可达。
  • 有些服务器公布的主机名客户端无法解析:试试直接用 IP。

2. 端口被阻断 / 防火墙

OPC UA 二进制通常运行在 TCP 4840 上(服务器可能不同)。TCP 超时或"connection refused"几乎总是网络或防火墙问题:

# is the port open from where the client runs?
nc -vz 192.168.10.20 4840
# or
Test-NetConnection 192.168.10.20 -Port 4840   # PowerShell

如果仍然失败:在服务器或操作系统防火墙上打开端口,检查 VLAN 和路由,并确认没有 NAT 改写服务器所通告的地址。

3. 安全模式不匹配

客户端和服务器必须就安全策略和模式(None、Sign 或 Sign&Encrypt)达成一致。如果客户端请求的策略服务器不提供(或反之),握手就会失败。先列出服务器的端点,再选择匹配的一个。

测试使用SecurityMode = None用来隔离问题没问题,但绝不要让生产环境停留在 None 上。

4. 证书未受信任 (最常见)

在 Sign 或 Sign&Encrypt 模式下,客户端与服务器交换 X.509 证书,双方都必须信任对方。首次连接通常会失败,因为客户端证书还躺在服务器的 rejected 目录中(反之亦然)。

  1. 先尝试连接一次(会被拒绝)。
  2. 在服务器上,把客户端的证书从 pki/rejected 移动到 pki/trusted/certs。
  3. 在客户端上,在出现提示时信任服务器的证书。
  4. 重连。

还要检查证书是否已过期,以及它的应用程序 URI 是否匹配。完整细节:OPC UA 安全 & 证书。

5. 凭据错误或缺失

如果服务器要求用户认证,匿名连接会被拒绝。请确认它期望的是匿名、用户名/口令还是用户证书,并提供正确的一种。

6. 节点访问 & 预期

已经连上但读写失败?请确认节点列表完整且稳定,并在一开始就明确需求是只读还是客户端需要写入:写权限常被限制,必须显式开启。

快速检查清单

症状最可能的原因
连接被拒绝 / 超时端口/防火墙(#2)或端点错误(#1)
“BadSecurityChecksFailed” / 握手错误证书信任(#4)或模式不匹配(#3)
"BadIdentityTokenRejected"凭据(#5)
连接正常,读/写失败节点访问/权限 (#6)

获取免费的 OPC UA 连接检查清单

这些检查按顺序整理成的一页可打印清单:把它放在控制柜旁边,留给下一次调试。

到工具页面获取 →

最后更新于 2026 年 9 月 4 日 · 教育资源。

免费下载
OPC UA 故障排查与集成检查清单
工程师用来快速诊断证书、端口和命名空间问题的实战清单:外加一份 Python(asyncua)客户端模板。
获取免费检查表 →
免费,无需课程,无需登录