故障排查
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 目录中(反之亦然)。
- 先尝试连接一次(会被拒绝)。
- 在服务器上,把客户端的证书从
pki/rejected移动到pki/trusted/certs。 - 在客户端上,在出现提示时信任服务器的证书。
- 重连。
还要检查证书是否已过期,以及它的应用程序 URI 是否匹配。完整细节:OPC UA 安全 & 证书。
5. 凭据错误或缺失
如果服务器要求用户认证,匿名连接会被拒绝。请确认它期望的是匿名、用户名/口令还是用户证书,并提供正确的一种。
6. 节点访问 & 预期
已经连上但读写失败?请确认节点列表完整且稳定,并在一开始就明确需求是只读还是客户端需要写入:写权限常被限制,必须显式开启。
快速检查清单
| 症状 | 最可能的原因 |
|---|---|
| 连接被拒绝 / 超时 | 端口/防火墙(#2)或端点错误(#1) |
| “BadSecurityChecksFailed” / 握手错误 | 证书信任(#4)或模式不匹配(#3) |
| "BadIdentityTokenRejected" | 凭据(#5) |
| 连接正常,读/写失败 | 节点访问/权限 (#6) |
最后更新于 2026 年 9 月 4 日 · 教育资源。