如何在C++中创建OpenVPN客户端?(不是 TUN/Tap 管理器,而是真正的客户端)

How to create an OpenVPN client in C++? (not a tun/tap manager, a true client)

本文关键字:客户端 管理器 Tap 不是 C++ 创建 OpenVPN TUN      更新时间:2023-10-16

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

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

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

还有其他选择吗?由于OpenVPN基于OpenSSL,难道它不仅仅是通过OpenSSL连接然后向服务器发送数据包的问题吗?(当然要正确解释.ovpn客户端文件)

有没有我缺少的另一种方法?

更新:

我打开了一个问题,开发人员说我可以创建一个TunBuilder界面。有人知道从哪里开始吗?那里有数百万个类

github上还有另一个项目,被称为OpenVPN,它似乎不是你引用的项目。这一切都是在C++年使用OpenSSL完成的。这个版本看起来像是在最近的Microsoft Visual Studio(2017)上构建的 - 所以至少所有的分支都没有过时!:)我认为这个项目可能更接近您正在寻找的内容。