"); //-->
By Toradex胡珊逢
联网需求在各种嵌入式应用中正开始变得越来越普遍,随之而来就是数据传输的安全挑战。VPN是应对该挑战的有效措施。除此之外,VPN 还能够穿透防火墙或者 NAT 实现异地组网,从而提供远程访问设备的功能。文章接下来在运行 Linux 系统的 Apalis iMX8QM 上演示如何使用 OpenVPN 和 WireGuard 两种 VPN 方案。
OpenVPN 一种使用较为广泛的 VPN,其基于 OpenSSL 提供多种加密方案,采用 TCP 或者 UDP 作为传输层协议,具有非常高的灵活性。WireGuard 是一种更加高效、快速、简单的 VPN 方案,最初直接基于 Linux 内核实现,支持最新的加密算法如Curve25519、ChaCha20、Poly1305、BLAKE2 等,传输层采用 UDP 协议。自 Linux 5.6 开始,WireGuard 已经集成到内核中,目前拥有非常活跃的开发群体,支持 Windows、macOS、BSD、iOS、Android。Toradex 针对其模块发布的 BSP 采用 Yocto 构建,OpenVPN 和 WireGuard 在 Yocto 中可以很方便得添加进来。
首先在 local.conf 配置文件添加一下内容,apache 网站服务器用于后面的远程连接演示。
IMAGE_INSTALL_append = " apache2 openvpn wireguard-module wireguard-tools"
修改 layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20200401.bb,注释掉 PKG_${PN} = "kernel-module-${MODULE_NAME}"

WireGuard 基于 Linux 内核实现,为了保证其代码的精简,其复用了内核中很多的网络功能,因此需要修改默认的内核配置。如果使用 OpenVPN ,则可以跳过该步骤,直接编译 BSP。
![]()
Networking support → Networking options

Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration
![]()
Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration

完成配置后编译 BSP
![]()
在开始配置之前,我们先介绍下测试所使用的网络拓扑。如下图所示,首先需要一台具有公网 IP 的服务器作为 VPN 服务器。 Apalis iMX8QM 通过以太网连接电信运营商提供的光猫。目前光猫通常只能获取的经过电信运营商 NAT 转换后的内网 IPv4 地址。用于测试的手机则通过****接入公网。

VPN 服务器设置
OpenVPN 和 WireGuard 官网均提供了详细的服务器配置说明。这里我们使用另外一个工具 PiVPN 来设置服务器。PiVPN 最初是为树莓派提供简单的服务器管理工具,但同样可以用于任何基于 Debian 发行版本,如 Ubuntu。运行下面命令即可安装。
curl -L
运行pivpn 分别为 Apalis iMX8 和手机添加 OpenVPN 和 WireGuard 账户。

修改服务器网络配置

手机端设置
在手机上安装 OpenVPN 和 WireGuard 客户端,然后导入上面 PiVPN 生成的 ovpn 或者 conf 文件,亦或通过扫二维码。PiVPN 均提供十分易于使用的功能。
Apalis iMX8QM 设置
使用 system-networkd 作为网络管理器

将网络设置动态获取 IP 方式。

修改 Apache 网页服务器默认显示内容。其他客户端可以用 HTTP 访问该网页。

l OpenVPN
开启 OpenVPN 连接
![]()
成功运行后会看到如下信息:

使用 ifconfig 命令可以看到如下 tun0 接口。分配的IP 为 10.8.0.5。在其他连接到该 VPN 的客户端上可以使用该 IP 来访问 Apalis iMX8QM。

在手机上连接 OpenVPN ,分配到的 IP 为 10.8.0.3。通过手机上的浏览器访问 Apalis iMX8QM 上的网页 http://10.8.0.5。


l WireGuard
将 PiVPN 生成的配置文件 apalis-imx8.conf 复制到 /etc/wireguard/wg0.conf,然后运行
![]()
使用 ifconfig 可以看到 wg0 接口,此时分配到的 IP 为 10.6.0.5。

在手机上启动 WireGuard 应用,访问 Apalis iMX8QM 上的网页 http://10.6.0.5。


总结
VPN 可以将不同网络的设备进行组网实现互联,方便远程管理。但同时也需要注意服务器的安全防护,通过该服务器可以获取到连接设备信息,包括登录验证信息。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
CW7900构成的大容性负载时,保护输入端短路的固定负输出集成稳压电源电路
AI眼镜低功耗技术探秘:Always-On架构与能效优化策略
快学易用 Protel_99
兆易创新GD32F5xx与GD32G5xx STL软件测试库获颁IEC 61508功能安全认证
[原创]如何用网络调试函数来解决网络问题
Skyworks报告25财年第四季度和全年初步业绩
AVR高速嵌入式单片机原理与应用
飞思卡尔心律监护演示
《高速PCB设计指南》
Qorvo公布 2026 财年第二季度初步财务业绩
震撼!台积电前高级副总裁罗唯仁传出将担任英特尔研发主管
加速度传感器在保健设备中的应用
国产半导体设备年销破千亿,106CEF聚力打造产业盛会
高盛表示当前AI投资规模远未过热
CW3085系列多端可调稳压器
有谁下载到了毛毛虫那儿的T2.2for68K 能不能给我一份/
CW7900构成的固定负输出电压集成稳压电源电路
压力传感器在保健设备中的应用
CW1469/1569与CW1463/1563系列多端可调稳压器
Gao老大,ftp上载怎么老出错?
三星HBM3E降价30%?试图追赶SK海力士
CW1468/1568多端固定对称稳压器
PROTEL99_电子电路图设计
t2cp4在ftp的 网友上传/emcode/SP4
飞思卡尔的家用便携式医疗应用
MC9S08LL16应用于医疗设备
有人要Cadence.PSD.v14.2吗?
8051单片机c语言彻底应用
依托莱迪思RoT FPGA与完整CNSA 2.0,为数字系统构建可信根基
Skyworks 和 Qorvo 将合并打造价值 220 亿美元的高性能射频、模拟和混合信号解决方案领导者