OpenVPN 控制

您可以通过调用 FIRERPA 提供的接口来将当前设备连接至 OpenVPN 网络。FIRERPA 内置 OpenVPN 支持使用证书登录模式(CA/CERT/KEY)、用户名密码登录模式(CA/用户/密码)、证书 + 用户名密码登录模式(CA/CERT/KEY/用户/密码)三选一(具体也取决于您的 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 认证相关参数。您可以访问官方文档 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

可配置 FIRERPA 启动时自动连接 VPN,配置方式请参阅 服务配置。由于配置复杂,我们仍不建议自行编写。请查看 部署 OpenVPN 服务 的文档,了解如何生成并填入相关配置。

快速搭建 VPN

请参阅 部署 OpenVPN 服务 文档了解如何部署和使用。