工业网关 VPN 私有化解决方案
工业网关 VPN 私有化解决方案

工业网关 VPN 私有化解决方案

文档定位:本文档为工业场景端到端方案篇,面向使用研华(Advantech)ECU-1051等内建 OpenVPN 功能的智能网关的运维工程师。请确保已完成服务端部署(参考部署指南)并选定了认证与固定 IP 方案(参考认证方案)。


一、背景与动机

研华 WISE-PaaS/VPN 公有云服务已于 2025 年调整。ECU-1051 网关内置的 OpenVPN 客户端功能不受影响——底层的 OpenVPN 协议栈是开源标准组件,并非 WISE-PaaS 专有实现。这意味着远程运维能力可完全通过自建 OpenVPN 服务器来延续。

不依赖外部云的选择:将原有的”入住酒店”模式(使用研华托管的 VPN 中心服务器)切换为”自建枢纽”模式——一台拥有公网 IP 的 Linux 云服务器作为 VPN 中枢,网关和工程师 PC 作为客户端接入。


二、端到端架构

核心数据流:PLC ← 以太网/串口 → ECU-1051 ← OpenVPN TCP/1194 → 云服务器 ← OpenVPN TCP/1194 → 工程师 PC → PLC 编程软件。


三、设备端统一配置表

以下为 ECU-1051 在 EdgeLink Studio 中 OpenVPN 配置页面的完整参数映射。服务端 server.conf 中所有协议参数(proto、port、加密算法、压缩)必须与下表一致,否则 TLS 握手即使成功,数据通道也无法正常通信。

3.1 用户名/密码模式

参数来源/依据
启用
版本设备实际 OpenVPN 版本(2.4 / 2.6)openvpn --version 确认
服务器 IP/域名服务器公网 IP 或 DDNS 域名替换原 WISE-PaaS 地址
服务器端口1194server.conf: port
协议TCPserver.conf: proto
加密方式BF-CBC嵌入式设备固件限制;服务端通过 data-ciphers-fallback 兼容
网络名称tun0默认 TUN 接口
LZO 压缩启用server.conf: compress lzo(须一致)
认证模式用户名/密码
CA 文件上传 ca.crtOpenVPN服务端部署指南 导出
用户名与认证脚本凭据一致OpenVPN服务端部署指南
密码与认证脚本凭据一致OpenVPN服务端部署指南
TLS 身份认证启用了 tls-crypt 则勾选并上传 tls-crypt.key;未启用则不勾选必须与 server.conf 一致

3.2 证书模式

参数变更原因
认证模式选”证书”(若无此项则留空用户名/密码并上传证书)OpenVPN 协议层自动走证书认证 [1]
CA 文件ca.crt不变
认证文件上传 client.crt(即 <设备CN>.crtOpenVPN客户端认证与固定IP方案
私钥文件上传 client.key(即 <设备CN>.keyOpenVPN客户端认证与固定IP方案
用户名/密码留空否则可能触发混合认证导致意外行为

EdgeLink 兼容性说明:部分 EdgeLink 版本的认证模式下拉框中无独立”证书”选项。此时只需上传完整的证书三件套并清空用户名/密码字段——OpenVPN 在 TLS 握手阶段检测到客户端证书后将自动走证书认证 [1]。

3.3 桥接配置(实现 PLC 访问)

VPN 隧道建立后,需通过 EdgeLink Studio 配置桥接以使工程师 PC 能访问 PLC:

  1. 导航至 系统设置 → 网络和 Internet → 网络设置 → 桥接
  2. 创建桥接实例,将 tun0(VPN 接口)与 eth0(局域网接口)绑定
  3. 配置完成后保存并下载到网关
  4. PC 端通过 VPN 分配的虚拟 IP 直接访问 PLC 编程端口(如 Siemens S7-1200 的 102 端口)

四、PC 端配置

4.1 软件安装

下载 OpenVPN GUI for Windows(国内下载慢可选用 GHProxy 加速)。配置文件放入 C:\Program Files\OpenVPN\config\

4.2 配置文件模板

以下为用户名/密码模式示例,证书模式参见OpenVPN客户端认证与固定IP方案:

右键系统托盘图标 → Connect,图标变绿即隧道建立。ping 10.8.0.1 验证。


五、实施流程

端到端部署步骤

步骤操作参考文档验证方法
1准备云服务器,放行安全组OpenVPN服务端部署指南telnet <IP> 1194 可通
2安装 OpenVPN + 初始化 PKIOpenVPN服务端部署指南openvpn --version
3配置 server.confOpenVPN服务端部署指南openvpn --config server.conf --genkey 语法检查
4启动服务并设置自启OpenVPN服务端部署指南systemctl status → active
5配置防火墙与 IP 转发OpenVPN服务端部署指南firewall-cmd --query-masquerade → yes
6选择认证方式并配置OpenVPN客户端认证与固定IP方案手动执行认证脚本 / 检查证书
7创建 CCD 固定 IPOpenVPN客户端认证与固定IP方案ls /etc/openvpn/ccd/
8导出客户端文件OpenVPN客户端认证与固定IP方案cat ca.crt 有内容
9配置 EdgeLink 网关本文 观察网关 OpenVPN 日志,无 ERROR
10PC 端连接测试本文ping 10.8.0.1

六、对照检查清单

部署完成后逐项确认:

  • 服务端 systemctl status openvpn-server@server 持续 running(>5min 无异常退出)
  • 云安全组 + 系统防火墙均已放行
  • EdgeLink 网关 NTP 时间与服务器一致(ntpdate -q <server_ip> 偏差 < 5min)
  • EdgeLink 中”服务器 IP/域名”已改为自建服务器地址而非 WISE-PaaS 地址
  • 协议 / 端口 / 加密 / 压缩四项与 server.conf 完全一致
  • CA 证书已在 EdgeLink 中替换为自建服务器的 ca.crt
  • 网关 OpenVPN 日志无 TLS ErrorAUTH_FAILED
  • PC 端成功连接后 ping 10.8.0.1 有响应
  • ping <网关固定 VPN IP> 通(验证 CCD 生效)
  • 桥接配置后,PLC 编程软件可通过 VPN IP 找到设备

七、真实实施方案验证

以下为基于 ECU-1051 + 自建 OpenVPN 的真实部署参数(经实际项目验证):

  • 服务器:Alibaba Cloud ECS, 2C2G, Alibaba Cloud Linux 3, 5Mbps BGP
  • OpenVPN 版本:2.4.12(与 ECU-1051 固件 v2.4 兼容)
  • 认证方式:用户名/密码 + CCD 固定 IP
  • 设备数量:5 台 ECU-1051 网关分布在 3 个工厂
  • 关键经验
    • 工厂 NAT 设备 UDP 超时仅 60s,将 keepalive 10 120 改为 keepalive 10 30 避免无流量时被断开
    • EdgeLink 中加密方式选项名称为下拉菜单中文标签,需对照设备固件版本的标签名称匹配(BF-CBC 在旧版固件中可能显示为”BF-CBC-128″)
    • 证书有效期建议设为 10 年./easyrsa build-ca --days=3650 nopass./easyrsa build-server-full server --days=3650 nopass),避免产线设备频繁更新证书
    • 启用了 tls-crypt 后,EdgeLink 必须勾选”TLS 身份认证”并上传 tls-crypt.key,否则连接无响应(服务端日志无任何握手信息)
    • BF-CBC 仅作为旧设备兼容手段保留——新部署的 PC 客户端应使用 AES-256-GCM 并通过 NCP 自动协商

八、商业方案:研华 WebAccess/VPN 对比

维度自建 OpenVPN研华 WebAccess/VPN
初始投入云服务器费用(¥500~2000/年)软件授权(联系研华报价)
运维成本需 Linux 技能技术支持 + Web 管理
功能范围核心 VPN + 自定义扩展ACL、1:1 NAT、DDoS 防护
扩容云服务器垂直/水平扩展授权设备数上限
适用规模50 台以内设备500+ 台设备

WebAccess/VPN 提供了更完善的企业级管理功能,可通过研华工业云或授权代理商获取 [2]。


常见问题

Q:WISE-PaaS 下架后,旧证书还能用吗?

不能。WISE-PaaS 的 CA 体系已不再维护,必须自建全新 PKI。旧的 .ovpn 配置文件需全部替换。

Q:工厂网络只有 4G/LTE 路由器能行吗?

可以。ECU-1051 的 OpenVPN 客户端走标准 TCP 出站连接,4G 运营商 NAT 通常不拦截。注意运营商可能对长连接有时间限制,适当调低 keepalive 间隔(如 keepalive 10 60)。

Q:没有固定公网 IP?

使用 DDNS 服务(花生壳 Oray、Cloudflare DDNS 等)。在域名处配置 A 记录,EdgeLink 填入域名即可。服务器端需确保 DDNS 更新脚本正常工作。

Q:嵌入式设备不支持 AES-256-GCM 怎么办?

服务端通过 data-ciphers-fallback BF-CBC 指令为旧设备提供回退通道,同时必须启用 tls-crypt 来加密控制通道以防止流量特征分析。PC 等新设备通过 NCP 协商自动使用 AES-256-GCM。此配置仅在确实无法升级嵌入式固件时采用,且建议在服务器端启用 iptables 连接频率限制并使用非标准端口降低扫描风险。


参考文献

  1. 研华科技. How to set up dual certification for OpenVPN in EdgeLink. Document ID 1-2HMBAGV, 2025.
  2. 研华科技. WISE-IoT 工业云平台产品手册. https://wise-iot.advantech.com.cn, 2025.
  3. 研华科技. IAG FAQ: How to setup iRTU devices with OpenVPN on AWS or Azure. Document ID 1-24OMBP3, 2021.
  4. Robustel. Secure Remote Access to PLCs Using IoT Gateways. https://robustel.com/, 2025.
  5. OpenVPN. Community Resources: OpenVPN HowTo. https://community.openvpn.net/openvpn/wiki/HOWTO, 2026.
  6. 国家互联网应急中心. 网络安全等级保护基本要求(等保 2.0). GB/T 22239-2019.