OPC UA 客户端在技术上是否可以通过转发代理将请求隧道传输到 OPC UA 服务器?

问题描述 投票:0回答:1

问题

这是我的java程序使用的OPC UA MILO客户端SDK:https://github.com/eclipse/milo/blob/master/opc-ua-sdk/sdk-client/src/main/java/org/ eclipse/milo/opcua/sdk/client/OpcUaClient.java

我有一个 OPC UA 客户端位于转发代理 (Squid) 后面,并且想要尝试通过 Squid 代理进行连接以通过 TCP 端口到达 OPC UA 服务器。它是 TCP 连接之上的 OPC 协议。

这里的问题是上面链接中的 SDK 客户端支持转发代理连接,我可以在代码中调用该连接来为到达 OPC UA 服务器的请求建立隧道。我有一种感觉,我们将不得不转向新的客户端 SDK。但由于我的直接迁移项目的截止日期很紧,因此最好尽可能减少代码更改。

由于当前基础设施的设计,任何对外部系统的出站请求都必须通过此转发代理发出,而不是通过直接连接。

意图

  1. 我想知道在技术上是否可以通过转发代理从客户端到服务器建立 OPC UA 连接(基于订阅)。当然,不用说,转发代理首先必须通过squid ACL配置允许该端口。然而,我的问题仍然是,- OPC UA 连接是否允许通过转发代理进行连接,因为我已经对此主题进行了研究,但无法获得任何有关此的信息。

  2. 如果第 1 点在技术上是可行的,如果任何在这个领域有经验的人提供关于如何在 MILO 客户端 sdk 仍然完好无损的情况下在 Java 代码中处理这个问题的建议,或者给我指出一个 java 客户端,我将非常感激我可以在 Java 代码中使用 SDK,以便在将请求通过隧道传输到 OPC UA 服务器之前允许连接到转发代理。

谢谢你。

java spring-boot opc-ua opc milo
1个回答
1
投票

我认为,如果您将 Squid 配置为充当 SOCKS5 代理,这在技术上是可行的,但是 Milo 使用 Netty 库进行网络连接,而 Netty 默认情况下不会查找

socksProxyHost
和相关的 Java 系统属性;它要求将 SOCKS 处理程序显式添加到管道的末尾。目前的版本似乎无法进行此配置。

© www.soinside.com 2019 - 2024. All rights reserved.