Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenConnect GUI

一个使用 C++17 与 Qt 6 编写的 OpenConnect 桌面客户端。界面遵循 Material Design 3 的色彩、圆角、排版和 tonal surface 层级。

connect

功能

  • 调用系统 openconnect,支持 AnyConnect、GlobalProtect、Pulse、Fortinet、F5 和 Array 等协议
  • 紧凑的 430×620 圆角连接窗口,启动时只显示预设选择、状态和连接操作
  • 多 VPN 预设管理;新增或设置时再打开完整配置窗口
  • 可将密码保存到 Linux 系统密钥环并在下次连接时自动输入,密码不写入 QSettings
  • 小窗口不常驻显示用户名或密码框;连接时按需弹出凭据对话框
  • 可在应用设置中关闭进入托盘、连接成功和连接失败通知
  • 首次连接证书指纹确认、按预设记住指纹,以及带风险提示的自动接受当前证书选项
  • 密码通过标准输入传递,不进入进程参数、设置文件或应用日志
  • Linux 下可通过 pkexec 请求网络管理权限,也可直接启动已配置能力的 openconnect
  • 连接状态、实时诊断日志和安全断开
  • 系统托盘、关闭到托盘、连接后最小化、启动时最小化
  • 客户端证书、自定义 CA、User-Agent、IPv6 开关
  • Material Design 3 亮色/深色主题
  • 使用矢量图标和程序绘制图标

connected

settings

app-settings

依赖

  • CMake 3.21+
  • C++17 编译器
  • Qt 6.4+(Widgets)
  • OpenConnect
  • Linux 推荐安装 PolicyKit(pkexec

Arch Linux:

sudo pacman -S cmake qt6-base openconnect polkit

Ubuntu / Debian:

sudo apt install cmake g++ qt6-base-dev openconnect policykit-1

构建

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/openconnect-gui

安装到系统:

sudo cmake --install build

DEB 打包

安装打包依赖:

sudo apt install build-essential cmake qt6-base-dev dpkg-dev desktop-file-utils

一键生成 DEB:

./scripts/build-deb.sh

生成的安装包位于 dist/。安装方式:

sudo apt install ./dist/openconnect-gui_*.deb

安装包包含应用程序、特权辅助程序、PolicyKit 策略、应用图标和桌面菜单快捷方式。可以通过 BUILD_DIROUTPUT_DIRJOBS 环境变量调整构建目录、输出目录和并行任务数。

权限说明

创建 TUN 设备、修改路由和 DNS 通常需要管理员权限。默认配置通过 pkexec 一次性启动受限的 openconnect-gui-helper,由它管理本次 OpenConnect 进程。连接时完成授权后,正常断开和退出不会再次弹出管理员验证。

安装过程同时部署 auth_admin_keep PolicyKit 动作,短时间内重新连接可以复用系统的临时授权。PolicyKit 通常只保留该授权数分钟,而不是整次登录会话;这是为了避免长期保留管理员权限。如果你已经为 openconnect 配置了 capabilities 或以其他方式提供权限,可在设置中关闭管理员授权选项。

直接从 build 目录运行时可以使用一次授权连接并且断开无需再次验证;要启用 PolicyKit 临时授权缓存,需要执行 sudo cmake --install build 安装辅助程序和策略。

About

一个使用 C++17 与 Qt 6 编写的 OpenConnect 桌面客户端。界面遵循 Material Design 3 的色彩、圆角、排版和 tonal surface 层级。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages