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. 即时浏览并连接到数千个服务器。 ## 截图 ### 主菜单 ![主菜单 - 断开连接](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/231d01cac6101732.png)
查看更多截图 ### 主菜单(已连接) ![主菜单 - 已连接](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9707cc8ac4101748.png) ### 动态服务器浏览器 ![动态服务器浏览器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9a0f2ef095101801.png) ### 我的服务器 ![我的服务器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b31bf9cd38101810.png) ### 连接流程 ![连接中](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fef6b052b6101815.png) ![断开连接](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b82afc0514101825.png) ### 设置 ![设置菜单](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/803a0b302d101830.png) ### Waybar 集成 ![Waybar 提示](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/caf4049ba8101837.png)
## 为何选择 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 的注册商标。
标签:Cutter, fzf, jaq, killswitch, Omarchy, systemd-networkd, TUI, VPN, VPN管理, Waybar, WireGuard, 动态服务器浏览器, 安全, 客户端, 工具, 开源, 快速, 智能命名, 网络, 网络工具, 自动恢复, 超时处理, 键盘驱动, 隐私, 隐私工具