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_GCM、AES_256_GCM、CHACHA20_POLY1305、AES_128_CBC、AES_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 服务 文档了解如何部署和使用。