连接虚拟网络 (OpenVPN)

您可以通过调用 LAMDA 提供的接口来将当前设备连接至 OpenVPN 网络,LAMDA 内置 OpenVPN 支持使用证书登录模式(CA/CERT/KEY)、用户名密码登录模式(CA/USER/PASS)、证书 + 用户名密码登录模式(CA/CERT/KEY/USER/PASS)三选一(同时也要看您的 OpenVPN 服务端如何配置),他可以与系统代理共存。需要注意的是,此功能只包含 OpenVPN 的主要功能,除了 DNS 配置,暂无法应用服务端推送的其他自动配置信息。这些配置包括但不限于 PAC 代理,http 代理配置等。我们为了省却你安装 OpenVPN 服务器的麻烦,提供了一个开箱即用的 OpenVPN docker 镜像,自带了脚本可以生成接口调用代码以及自启动配置。

连接 VPN

我们建议您先看 部署 OpenVPN 服务器 文档来了解如何自动生成这个连接配置,手动编写存在很大的失误可能性。下面我们只介绍主要接口的调用方式。

profile = OpenVPNProfile()
# 在此贴入自部署服务器自动生成的代码
d.start_openvpn(profile)

关闭 VPN

关闭 VPN 的调用方法也很简单,只需要这样即可。

# 关闭 OpenVPN
d.stop_openvpn()

完整参数

下面是 VPN 接口完整的参数配置信息,我们只是为您描述每个参数对应的意义,我们不建议您自行拼写该接口的参数,请通过自部署的服务器生成代码。

是否启用全局 VPN,如果启用,那么系统中所有流量将从 VPN 服务器出口。

profile.all_traffic  = False

服务器端开启的连接协议,您可以选择 OpenVPNProto.UDP 或者 OpenVPNProto.TCP,此选项看您服务器的配置决定。

profile.proto        = OpenVPNProto.UDP

OpenVPN 用户名密码认证的用户名和密码配置。

profile.login        = "用户名"
profile.password     = "密码"

您可以通过这两个参数来设置您 OpenVPN 服务器的地址和端口。

profile.host         = 服务器地址
profile.port         = 服务器端口

设置服务器端通道加密方法,接口支持使用 AES_128_GCMAES_256_GCMCHACHA20_POLY1305AES_128_CBCAES_256_CBC 这几种加密方式。

profile.cipher       = OpenVPNCipher.AES_256_GCM

设置 OpenVPN tls-auth 相关参数,您可以访问官方文档 openvpn.net/community-resources/reference-manual-for-openvpn-2-5 了解更多。

profile.tls_encryption = OpenVPNEncryption.TLS_CRYPT
profile.tls_key_direction = OpenVPNKeyDirection.KEY_DIRECTION_NONE
profile.tls_key      = "-----BEGIN OpenVPN Static key V1-----"

OpenVPN 客户端证书,客户端私钥,服务器证书相关配置。

profile.ca           = "-----BEGIN CERTIFICATE-----"
profile.cert         = "-----BEGIN CERTIFICATE-----"
profile.key          = "-----BEGIN PRIVATE KEY-----"

自动连接 VPN

您可以通过编写 properties.local 的方式来使 LAMDA 在启动时自动连接到 VPN 服务器,由于此项配置复杂,我们仍然不建议自行编写。请查看我们自部署 OpenVPN 服务器的文档了解如何自动生成 properties.local 配置信息。

快速搭建 VPN

请转至我们的 部署 OpenVPN 服务器 相关文档查看如何部署及使用。