首页 > 解决方案 > 如何在 C++ 中创建 OpenVPN 客户端?(不是一个 tun/tap 经理,一个真正的客户)

问题描述

OpenVPN3 库的工作方式是在主机系统上创建一个 TUN/TAP 接口。例如,在 Android 上,不可能同时创建两个不同的 VPN 连接,但我确实需要能够在我的 Android 应用程序(可能还有 iOS 和 macOS 等其他系统)上同时使用 2 个或更多连接,Linux,紫红色)。

我正在阅读OpenVPN3 源代码。当然,它可以修改为用作 C++ 中的库以打开直接连接而无需调用系统,但恐怕我最终会遇到不安全的事情。编写安全的加密代码非常困难。

不能使用其他VPN协议,它必须是OpenVPN。

还有其他选择吗?既然OpenVPN是基于OpenSSL的,那不就是通过OpenSSL连接,然后给服务器发包吗?(当然要正确解释 .ovpn 客户端文件)

还有另一种我想念的方法吗?

更新:

打开了一个问题,开发人员说我可以创建一个 TunBuilder 接口。有人知道从哪里开始吗?那里有数以百万计的课程

标签: c++socketsnetworkingopensslopenvpn

解决方案


在 github 上还有另一个项目,称为OpenVPN,它似乎不是您引用的那个。这一切都是在 C++ 中使用 OpenSSL 完成的。这个构建看起来像是在相当新的 Microsoft Visual Studio (2017) 上进行的——所以至少所有的分支都不是陈旧的!:) 我认为这个项目可能更接近你正在寻找的东西。


推荐阅读