基于 Electron + React + TypeScript 的桌面 OpenVPN 图形客户端
iKunVPN 是一款面向 Windows 平台的桌面 OpenVPN 图形客户端,提供直观的 GUI 来管理多个 OpenVPN 连接。内置自动重连、TAP 虚拟网卡驱动管理、OTP 双因素认证、自动更新等高级功能。
- VPN 连接管理 — 新建、编辑、删除 VPN 配置,支持上传
.ovpn配置文件或粘贴配置内容 - 实时状态显示 — 清晰展示每个连接的状态(已连接/连接中/未连接/错误)
- 自动重连 — 连接意外断开时自动尝试重连
- 连接日志 — 实时查看 OpenVPN 的 stdout/stderr 日志输出
- OTP 双因素认证 — 支持 TOTP 动态口令,自动计算并拼接到密码后
- TAP 网卡管理 — 安装/卸载 TAP 驱动,新建/删除虚拟网卡,查看网卡信息
- 系统托盘集成 — 最小化到系统托盘,支持右键快捷菜单
- 自动更新 — 基于 GitHub Releases 的自动更新,支持下载进度显示
- 本地数据存储 — VPN 配置以 JSON 文件存储在本地,隐私安全
- Node.js >= 18
- npm >= 8
# 克隆仓库
git clone https://github.com/aoaostar/iKunVPN.git
cd iKunVPN
# 安装依赖
npm install
# 启动开发服务器
npm run devnpm run build构建产物为 Windows NSIS 安装包,输出到 dist/ 目录。
| 类别 | 技术 |
|---|---|
| 核心框架 | Electron 36, React 19, TypeScript 5.8 |
| 构建工具 | Vite 7, electron-builder 26 |
| UI 组件库 | Semi UI (字节跳动) |
| 路由 | react-router-dom 7 (HashRouter) |
| 本地数据库 | lowdb 7 (JSON 文件存储) |
| 自动更新 | electron-updater 6 |
| OTP 认证 | otp (TOTP) |
| CI/CD | GitHub Actions (Windows) |
iKunVPN/
├── app/ # Electron 主进程
│ ├── main/
│ │ ├── main.ts # 主进程入口
│ │ ├── ipc_main.ts # IPC 通信处理器
│ │ ├── connection.ts # OpenVPN 连接核心
│ │ ├── connections.ts # 连接管理器
│ │ ├── autoupdater.ts # 自动更新
│ │ └── db/ # 数据库层
│ └── preload/
│ └── preload.ts # 预加载脚本
├── src/ # 渲染进程(React 前端)
│ ├── pages/ # 页面组件
│ ├── components/ # 通用组件
│ ├── api/ # API 封装
│ └── router/ # 路由配置
├── extra/openvpn/ # 捆绑的 OpenVPN 二进制文件
├── build/ # 编译输出
└── dist/ # 打包输出
| VPN 列表 | 连接详情 |
|---|---|
![]() |
![]() |


