Skip to content

OpenVPN Connect

OpenVPN Connect 是 OpenVPN 官方 VPN 客户端。Protocol Launcher 允许你生成 OpenVPN Connect URL scheme 链接。

使用

有两种方式使用此库:

  • On-Demand 从子路径导入,有利于 tree-shaking 并保持包体积较小。
  • Full Import 从根包导入,写起来更方便,但会包含所有应用模块。

生产构建建议使用 On-Demand;快速脚本或演示可以使用 Full Import。

选择安装方式

按需加载
推荐使用。生产环境优化。
全量导入
使用便捷。适合快速脚本。

说明

OpenVPN 的 Access Server token URL 文档把 token URL 定义为带有连接配置认证 token 的 HTTPS URL。要触发 OpenVPN Connect 的导入流程,需要在 token URL 前加上 openvpn://import-profile/ 前缀。这些 helper 接收原始的 https:// token URL,并且只添加这个前缀。

官方文档说明,此客户端导入流程需要 Access Server 2.11.0 或更新版本,以及 OpenVPN Connect 3.3.6 或更新版本。OpenVPN Connect FAQ 还说明应用会安装 openvpn://openvpn-connect:// URL scheme 用于检测是否安装,但没有记录 openvpn-connect:// 的 action 格式。因此本模块只暴露官方文档记录的 token URL 导入格式。

示例与测试使用占位值。不要公开真实 token URL、凭据、服务器名称或 profile token。

导入 Profile

On-Demand
ts
import { importProfile } from 'protocol-launcher/openvpn-connect'

const url = importProfile({
  url: 'https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN',
})

导入 Profile Token URL

On-Demand
ts
import { importProfileTokenUrl } from 'protocol-launcher/openvpn-connect'

const url = importProfileTokenUrl({
  url: 'https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN',
})

生成的 URL

ts
importProfile({
  url: 'https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN',
})
// => 'openvpn://import-profile/https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN'

importProfileTokenUrl({
  url: 'https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN',
})
// => 'openvpn://import-profile/https://vpn.example.com/rest/GetProfileViaToken?token=REPLACE_WITH_TOKEN'

参考资料