blank-query/lazyVPN-for-Omarchy
GitHub: blank-query/lazyVPN-for-Omarchy
Omarchy 专用的键盘驱动 WireGuard VPN 管理器,以 TUI 替代手动配置并提供动态服务器浏览与自动恢复。
Stars: 23 | Forks: 0
# LazyVPN - Omarchy VPN 管理器
**为 Omarchy Linux 提供无摩擦的隐私保护。**
LazyVPN 用快速、键盘驱动的界面取代了手动网络配置。浏览数千个服务器,即时连接,并凭借坚如磐石的 killswitch 保持保护——全程无需离开键盘。
## 目录
- [快速开始](#quick-start)
- [截图](#screenshots)
- [为何选择 LazyVPN?](#why-lazyvpn)
- [安装](#installation)
- [动态服务器浏览器](#-dynamic-server-browser-new)
- [智能服务器命名](#-intelligent-server-naming)
- [安全架构](#-security-architecture)
- [隐私与日志](#-privacy--logging)
- [使用指南](#usage--menu-structure)
- [故障排除](#troubleshooting)
- [路线图](#roadmap)
- [许可证](#license)
## 快速开始
**30 秒内连接:**
```
git clone https://github.com/blank-query/lazyVPN-for-Omarchy.git
cd lazyVPN-for-Omarchy
./install_lazyVPN.sh
```
🚀 **搞定!** 按下 `SUPER+SHIFT+L` 启动菜单。
1. 选择 **动态服务器列表**。
2. 加载 **一个** WireGuard 配置文件以进行身份验证。
3. 即时浏览并连接到数千个服务器。
## 截图
### 主菜单

## 为何选择 LazyVPN?
* **⚡ 极速响应:** 基于 `fzf` 和 `jaq` 构建,实现即时服务器过滤与导航。
* **🌐 告别手动配置:** 全新的 **动态浏览器** 让您只需一步设置即可访问提供商的整个网络。
* **🛡️ 坚如磐石的安全:** 基于防火墙的 killswitch 与内核级 IPv6 泄漏防护,重启后依然生效。
* **🎹 全键盘操作:** 完全通过热键进行导航、过滤与连接。
* **🧠 智能自动化:** 启动时自动连接到最快服务器,连接中断时自动恢复。
* **🎨 美观集成:** 无缝集成您的 Waybar 与 Omarchy 桌面环境。
## 系统要求
安装程序会自动处理所有软件依赖(`fzf`、`jaq`、`bc`、`iptables` 等)。
**您仅需:**
- **Omarchy Linux**(严格依赖系统集成)
- 支持 WireGuard 的 VPN 提供商
- 网络连接
**支持的提供商:**
✅ **ProtonVPN**(已验证并推荐 - 提供免费层级)
🧪 **Mullvad**(轻度测试 - 应该可用)
🧪 **IVPN、PIA、NordVPN、Surfshark**(实验性 - [帮助我们测试!](https://github.com/blank-query/lazyVPN-for-Omarchy/issues))
## 安装
```
git clone https://github.com/blank-query/lazyVPN-for-Omarchy.git
cd lazyVPN-for-Omarchy
./install_lazyVPN.sh
```
安装过程中,您可以选择启用 **无需密码的 sudo** 以实现无缝的 VPN 操作(推荐)。
## 🌐 动态服务器浏览器(新功能!)
**停止下载数百个配置文件。**
LazyVPN 革新了您的服务器管理方式。不再用静态的 `.conf` 文件填满磁盘,您现在可以实时访问提供商的网络。
* **一次性设置:** 仅需一次配置即可完成身份验证。
* **实时更新:** 服务器数据来源于优秀的 [gluetun](https://github.com/qdm12/gluetun) 项目(MIT 许可证),确保服务器列表可靠且最新。
* **强大过滤器:**
* `1`-`5`:切换 **P2P**、**Tor**、**安全核心**、**流媒体**、**免费**
* `6`:**随机连接**(从当前过滤列表中随机选择)
* `7`:**最快**(测试当前过滤列表的延迟)
* `9`:**收藏**(将最佳服务器加星以保存到“我的服务器”)
## 🏷️ 智能服务器命名
LazyVPN 自动解析晦涩的文件名与元数据,为您呈现带有功能标识的易读服务器名称。
| 原始配置名称 | LazyVPN 显示名称 |
|----------------|--------------------------------------------------|
| `proton-us-ny-03` | 🇺🇸 美国 - 纽约(US-NY#3) |
| `se-sto-p2p-05` | 🇸🇪 瑞典 - 斯德哥尔摩(SE-STO#5) 🔄 |
| `ch-us-01` | 🇨🇭 瑞士 → 🇺🇸 美国(CH-US#1) 🔒 |
**功能标识:**
| Emoji | 功能 |
|-------|------|
| 🔄 | **P2P / 端口转发** |
| 🔒 | **安全核心**(多跳) |
| 🧅 | **Tor 路由** |
| 📺 | **流媒体优化** |
| 🤡 | **免费层级** |
| ⭐ | **收藏** |
## 📁 我的服务器
您的个人仪表板,整合了:
1. **⭐ 收藏:** 在动态浏览器中加星的服务器。
2. **📄 手动配置:** 您手动导入的自定义 WireGuard 文件。
## 🔐 安全架构
LazyVPN 基于“最小权限”安全模型构建,确保系统安全的同时提供 TUI 的便捷性。
### 1. 权限分离
核心应用程序以普通用户身份运行。root 权限严格隔离,仅通过 **`lazyvpn-file-helper`** 脚本执行特定操作。
- **已验证操作:** 辅助脚本严格验证所有输入(路径、文件名、内容),防止路径遍历或符号链接攻击。
- **无全局访问权限:** 主应用程序无法修改任意系统文件,仅能请求辅助脚本将特定 WireGuard 配置写入 `/etc/systemd/network/`。
### 2. 凭证隔离
您的敏感数据始终由您控制。
- **私钥:** 存储在 `~/.config/lazyvpn/providers/` 和 `~/.config/lazyvpn/wireguard/`,权限为 **`chmod 600`**(仅您可读写)。
- **运行时仅:** 私钥**永不**永久存储于全局系统目录。仅在主动连接时注入到临时的 `systemd-networkd` 运行时配置中,断开连接后即移除。
### 3. 受限的 sudo
安装程序会配置 `/etc/sudoers.d/lazyvpn`,仅允许通过**特定允许列表**中的命令以无密码方式执行,这些命令是 VPN 运行所必需的:
- `networkctl`(用于管理接口)
- `iptables`(用于管理 killswitch 防火墙规则)
- `lazyvpn-file-helper`(用于安全文件操作)
### 4. 零意外流量
**您始终掌控一切。** LazyVPN 绝不会在您未明确指令的情况下发起网络流量。
- **无回连:** 不会检查更新、发送遥测数据或上报使用统计。
- **按需获取:** 服务器列表仅在您显式运行获取命令或选择“刷新”时更新。
- **无后台通信:** 自动恢复守护进程仅向您的 VPN 端点发送 ping 以检查连通性;不发送其他数据。
### 5. 验证的安全删除
LazyVPN 不会简单地“删除”文件,而是确保其不可恢复。
* **默认使用 shred:** 对所有凭证、配置文件和日志使用 `shred -u`(3 次覆写)进行清除。
* **智能日志清理:** 不直接删除整个系统日志,而是识别包含 VPN 痕迹(IP、服务器名称、接口 ID)的特定二进制日志文件并仅清除这些文件。
* **精确的历史清理:** 对于 Shell 历史记录(`.bash_history` 等),创建一份净化副本,安全清除原始受污染文件,并恢复干净版本以保留 VPN 历史。
* **交互式恢复:** 若擦除失败(例如因 root 所有权),工具会提供诊断日志并提示您使用 `sudo shred` 提升权限,确保不会出现“假成功”。
## 🕵️ 隐私与日志
LazyVPN 采用“零知识”理念设计,注重本地机器的数据主权与用户明确同意。
* **默认无日志:** LazyVPN 不会记录您的活动、连接时间或错误,除非您显式启用调试模式。
* **可选调试:** 如需排查问题,可在 **设置 > 高级 > 调试日志** 中启用临时日志记录。
* **细粒度分类:** 可为特定子系统(连接、自动恢复、防火墙、提供程序解析、自动启动)启用日志记录,以最小化数据收集。
* **安全模式(默认):** 调试日志会自动脱敏敏感元数据,包括 WireGuard 私钥与公网 IP 地址。
* **验证的安全删除:** 与普通工具仅“删除”文件不同,LazyVPN 对所有日志与配置文件使用 `shred -u`(覆写并移除)。
* **明确反馈:** 每次文件操作都会提供明确反馈。若安全擦除失败(例如因权限问题),工具会提示您升级到 `sudo shred` 或强制删除,确保您不会产生错误的安全感。
* **干净的卸载:** 卸载程序会安全清除所有本地日志、凭证与缓存,并会对 VPN 相关条目执行手术式清理(详见安全架构)。
## 使用与菜单结构
**打开菜单**:`SUPER+SHIFT+L`
**导航**:方向键与回车。Esc 返回。
### 🛡️ 保护与自动化
LazyVPN 在后台静默运行,保障您的安全。
* **防火墙 killswitch:** VPN 断开时阻止所有流量。可配置为允许本地网络(打印机/NAS)访问。
* **自动恢复:** 后台守护进程监控连接健康并自动重连。
* **自动故障转移:** 若服务器宕机,自动切换到下一个最佳服务器。
* **IPv6 泄漏防护:** 在内核级别阻断 IPv6 流量以防止泄漏。
### 🧪 测试工具
通过设置菜单直接验证您的隐私:
* **延迟测试:** 对当前服务器进行 ping 检查。
* **速度测试:** 10MB 下载测试。
* **IP 与 DNS 泄漏:** 在浏览器中打开 `ipleak.net`。
## ✨ 深度系统集成
LazyVPN 不仅仅是一个应用;它已成为您的 Omarchy 桌面的一部分。
* **Waybar 状态:** 连接时自动显示自定义模块,展示提供商、位置标识与 IP。点击可打开菜单。
* **Omarchy 菜单:** 完全集成至主系统菜单(`SUPER+ALT+SPACE`),采用原生 Omarchy 视觉风格。
* **键位绑定助手:** 自动在 Omarchy 键位绑定速查表(`SUPER+K`)中注册 `SUPER+SHIFT+L`。
* **桌面通知:** 连接状态与自动恢复事件的原生通知。
## ⚡ 为何仅支持 WireGuard?
LazyVPN 仅支持 **WireGuard**。我们不支持 OpenVPN,原因如下:
* **性能:** WireGuard 运行于 Linux 内核,提供显著高于 OpenVPN 的吞吐与更低的 CPU 占用。
* **即时连接:** WireGuard 无状态。在 WiFi/以太网间漫游与连接服务器近乎瞬时。
* **原生集成:** 使用 WireGuard 可直接利用 `systemd-networkd`,避免重型外部守护进程,确保稳固稳定性。
* **简洁性:** WireGuard 的现代代码库(约 4k 行对比 OpenVPN 的 100k+)契合我们对安全与极简的理念。
## 技术细节
**网络栈:** 使用 `systemd-networkd` 管理 WireGuard 接口(而非 `wg-quick`)
**防火墙:** 自定义 iptables 链(`LAZYVPN_OUT` 用于 IPv4/IPv6)
**DNS:** 与 `systemd-resolved` 集成以保障 DNS 隐私
**权限模型:** 通过 `/etc/sudoers.d/lazyvpn` 实现最小 sudo 范围
**配置文件:**
- 设置:`~/.config/lazyvpn/config`
- 手动服务器配置:`~/.config/lazyvpn/wireguard/*.conf`(权限 600)
- 提供商凭证:`~/.config/lazyvpn/providers/*.conf`(权限 600)
## 卸载
要移除 LazyVPN 及相关所有文件:
`lazyvpn-uninstall`(或通过设置菜单)
**安全删除:**
系统会提示您安全清除凭证文件、配置文件并整理 Shell 历史。**卸载程序使用交互式安全删除确保所有文件不可恢复。**
## 故障排除
**Killswitch 阻断所有流量**
- 检查“KS 在断开”设置。若设为“从不”,在重新连接前互联网将持续被阻断。
- **紧急禁用:** 在终端运行 `lazyvpn-disable-killswitch`。
**提供商设置显示“无效或清理过的私钥”**
- ProtonVPN:重新下载现有配置文件会得到清理后的密钥(`****`)。您必须从 Proton 仪表板生成**新**配置文件。
## 路线图
### 计划功能
- 对包含私钥的服务器/提供程序配置进行加密存储。
- 扩展对更多 VPN 提供商的支持与测试。
- 开发自定义集成 TUI,提供更流畅响应的用户体验。
**欢迎建议!** 在 GitHub 提交问题。
## 旧版本
旧版 LazyVPN(无动态服务器浏览器)保留在 `old-stable` 分支。
## 许可证
MIT 许可证 - 版权所有 (c) 2025 blank-query
*WireGuard 是 Jason A. Donenfeld 的注册商标。
查看更多截图
### 主菜单(已连接)  ### 动态服务器浏览器  ### 我的服务器  ### 连接流程   ### 设置  ### Waybar 集成 标签:Cutter, fzf, jaq, killswitch, Omarchy, systemd-networkd, TUI, VPN, VPN管理, Waybar, WireGuard, 动态服务器浏览器, 安全, 客户端, 工具, 开源, 快速, 智能命名, 网络, 网络工具, 自动恢复, 超时处理, 键盘驱动, 隐私, 隐私工具