Skip to content

aoaostar/iKunVPN

Repository files navigation

iKunVPN Logo

iKunVPN

基于 Electron + React + TypeScript 的桌面 OpenVPN 图形客户端

Electron React TypeScript Vite Windows GitHub Release

简介

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 dev

构建

npm 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 列表 连接详情
列表页 详情页

许可证

AGPL-3.0

About

iKunVPN 是一款面向 Windows 平台的桌面 OpenVPN 图形客户端,提供直观的 GUI 来管理多个 OpenVPN 连接。内置自动重连、TAP 虚拟网卡驱动管理、OTP 双因素认证、自动更新等高级功能。

Resources

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages