Skip to content

Releases

vpsctl v0.12.1:Alpine SSH 密钥访问支持

Choose a tag to compare

@github-actions github-actions released this 06 Nov 07:34

Alpine / OpenRC SSH 密钥访问支持

  • 支持为已有用户(含 root)添加或生成 SSH 密钥,添加成功后自动启用公钥认证。
  • 支持直接调整 root / 密码登录策略,以及密钥和 SSH 策略备份恢复;使用 OpenRC 管理 sshd reload。
  • 保留配置校验、重复公钥去重、权限维护和失败回滚,取消生成时撤销本次新密钥。
  • 修复 BusyBox 文件工具兼容性,补齐 APK 密钥工具依赖及缺少 ss / flock / getent 时的依赖处理。
  • Alpine 交互菜单只显示受支持操作;账户管理与 SSH 端口事务仍限 systemd。

已在专用环境完成 Alpine 3.23.8 / OpenRC 与 Debian 13 / systemd 的真实密钥登录、密码策略、备份恢复及相关回归验证。

更新

vpsctl self update --version v0.12.1

升级后进入 vpsctl security access,或执行:

vpsctl --install-deps security access key add --user root --public-key-file /root/id_ed25519.pub

Release 包含全部 schema 2 在线资产,以及 Debian 12/13、Ubuntu 22.04/24.04 的 amd64/arm64 共 8 个离线包。Alpine 使用在线安装与更新。

访问管理与验收记录

vpsctl v0.12.0:原生 nftables 防火墙

Choose a tag to compare

@github-actions github-actions released this 01 Nov 14:11

原生 nftables 防火墙

  • 统一使用 vpsctl network nftables,移除 UFW/RFW 命令、共享实现及发布资产。
  • 五项精简菜单;支持 IPv4/IPv6、IP/CIDR 与端口范围、仅允许指定来源、临时授权、日志与计数。
  • 自动联动 SSH、代理与中转、Hysteria2 跳端口、独立 PO0、HTTP-01、TCPing、iperf3 及 Fail2ban。
  • 仅管理专属表,保留代理 NAT/DNS 刷新、Docker 及其他软件的规则。临时授权重载或重启后保持原到期时间。
  • 每 IP 的 TCP 新建连接速率、TCP 并发连接数、UDP 包速率限制默认关闭,按需启用。
  • 在线按需加载与全部 8 个离线包同步更新;离线包覆盖 Debian 12/13、Ubuntu 22.04/24.04 的 amd64/arm64。

升级与切换

vpsctl self update
vpsctl network nftables

升级管理器后,在防火墙菜单选择启用,执行备份、服务规则重建和旧后端退役。旧手工规则不会自动导入,请按需重新添加。CLI install 仅安装,enable 才激活过滤;非交互安装依赖沿用全局 --install-deps。

管理与恢复说明 · 功能验收范围 · 发布验收记录

vpsctl v0.11.0:常用运维与代理离线包

Choose a tag to compare

@github-actions github-actions released this 01 Nov 02:25

本版本新增常用运维与代理离线包,支持 Debian 12/13、Ubuntu 22.04/24.04 的 amd64 与 arm64,共 8 个目标。

  • 覆盖网络配置、UFW、SSH、Fail2ban、Xray、sing-box、TCPing、iperf3、证书工具、Swap 和清理所需的程序及系统依赖。
  • 构建时统一查询 Xray、sing-box、lego、RFW 最新稳定版,8 包共用版本快照;系统依赖来自对应发行版官方更新源和安全更新源。
  • 支持首次离线安装、同版本补全和跨版本离线更新;资源保存在受管版本目录,删除原解压目录或清理功能缓存后仍可恢复。
  • 离线缺资源、错误平台、摘要损坏或提交失败时拒绝激活不完整版本,不自动联网下载。
  • 保留 schema 2 在线资产及按需下载、显式在线更新行为。提供统一 vpsctl-offline-SHA256SUMS。

下载与系统、架构匹配的 vpsctl-offline-0.11.0-<OS>-<OS_VERSION>-<ARCH>.tar.gz,核对汇总 SHA-256 后解压:

bash ./vpsctl.sh --offline-dir "$PWD"
# 已安装 v0.11.0 或后续支持离线更新的版本:
vpsctl self update --offline-dir /path/to/extracted-package

v0.10.0 等旧管理器可直接运行解压后的安装器完成离线升级。在线用户运行 vpsctl self update --version v0.11.0。

备份、内核安装、系统重装和第三方综合测速不承诺完整离线。ACME 签发、DNS、NTP 和代理通信仍需相应服务可达;RFW 地域过滤仍需联网。

8 平台已在专用环境完成断网依赖安装和主要二进制检查,真实服务验证使用 Debian 13 amd64。此前 ARM64 资源验收使用 QEMU;Debian 13 ARM64 的 nft 规则操作受仿真限制,未验收。详细范围见离线验收记录。

vpsctl v0.10.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 02:21

新增实验性的备份与恢复功能:

  • system backup:ReaR 整机备份、异地上传与救援恢复。
  • system backup-docker:Docker 镜像、容器配置及持久数据备份与恢复。
  • system backup-repo:WebDAV、S3 和本地加密仓库,快照校验与保留策略。
  • 三个入口独立按需下载,共用 shared-backup;支持独立运行版本的 systemd/cron 定时任务及失败上传重传。

本版同时修复四项审查问题:在线数据库挂载遗漏其他业务文件、DHCP 恢复依赖检查过晚、过期快照阻塞后续备份,以及恢复工具包之间覆盖仓库凭据。

备份功能保持 experimental。实际平台、数据库和恢复验收范围见备份验收记录,操作说明见备份与恢复。旧恢复工具包需重新导出以获得凭据隔离修复。

从 schema 2 版本升级:

vpsctl self update --version v0.10.0

保持 manifest schema 2;v0.8.9/schema 1 用户仍需先校验目标安装器与清单、普通卸载管理器后重新安装,不能直接跨格式 self update。完整发布提供安装器、manifest 和全部 25 个 bundle,共 27 个资产。

vpsctl v0.9.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 04:58

新增 vpsctl system clean,可通过“系统管理 → 系统清理”菜单使用。

  • safe:清理 vpsctl 废弃残留、软件包下载缓存和按系统规则过期的临时文件。
  • bundles:单独清空可重新下载的功能包,保留 core、共享库和清理功能;下次使用相关功能需要联网。
  • journal:单独清理超过 30 天的归档 journal,保留活动日志。
  • 支持状态查看、--dry-run 预览及 --yes --non-interactive;实际清理只确认一次。
  • 保留配置、状态、备份、证书、Swap、运行服务和更新恢复材料;被占用或归属不明的内容保留并报告。

系统临时文件清理保留 vpsctl 专属工作目录,包括另有显式目录或嵌套通配规则的情况。不自动卸载软件、删除旧内核、清空内存缓存,也不增加定时任务。

更新及使用:

vpsctl self update --version v0.9.1
vpsctl system clean
vpsctl --dry-run system clean safe

继续使用 manifest schema 2。v0.8.9 的 schema 1 用户须按 README 校验目标安装器和清单,普通卸载后重装。

使用说明 · 功能验收

vpsctl v0.8.19

Choose a tag to compare

@github-actions github-actions released this 28 Oct 12:09

统一修复 systemd 单元尚未安装时,自启状态查询输出 Failed to get unit file state ... No such file or directory 的问题,覆盖 sing-box / Xray、代理中转运行时、TCPing 和 iperf3。四处共用同一个查询函数,仅将确认不存在的单元按未启用处理,保留真实查询错误及其他 systemd 状态判断。

专用环境五组定向回归通过;真实 Debian 12 / systemd 252 已复现旧版 sing-box 告警,并通过修复后的代理核心生命周期、中转状态、TCPing 双栈连接、iperf3 收发以及 static / masked / disabled 状态验收。

schema 2 用户可执行:

vpsctl self update --version v0.8.19

现有正常运行的代理、TCPing 和 iperf3 无需重装或重启。完整分发包含 22 个资产。

vpsctl v0.8.18

Choose a tag to compare

@github-actions github-actions released this 28 Oct 11:39

修复 TCPing 测试站点首次安装前,Debian 12 / systemd 252 在菜单、状态查询和启动流程中输出 Failed to get unit file state ... No such file or directory 的问题。已不存在的单元按“未安装”显示;现有服务的自启判断、非受管服务保护和真实查询错误保持可见。

通过 SSH 专用环境的 TCPing 回归、语法和静态检查,以及真实 Debian 12 上的原问题复现、首次启动、双栈连接、停止和卸载验收。完整 schema 2 分发包含 22 个资产。

现有 schema 2 用户可执行:

vpsctl self update --version v0.8.18
vpsctl service tcping status

已在运行的 TCPing 无需重装或重启。

vpsctl v0.8.17

Choose a tag to compare

@github-actions github-actions released this 28 Oct 10:26

修复 BIOS 主机安装/修复 GRUB 时,因已安装 grub-efi-amd64 而被 APT 的禁止删除规则拦截的问题,包括 Debian 12 的 GPT/Btrfs 根子卷布局。

  • 在已确认的 BIOS 环境中,允许将已安装、未锁定的普通 grub-efi-amd64 控制包替换为完整 grub-pc;确认页列出待移除的包名和原版本。
  • 预检验证精确的替换计划和独立移除依赖。备份后只移除该控制包,保留配置、EFI 模块和 ESP 文件,随后 APT 安装继续使用 --no-remove。
  • 拒绝 purge、签名包、shim、EFI 模块或其他包的连带删除,并校验替换后的包状态和保留模块版本。移除记录纳入恢复材料。

已通过安装流程、provider 和内核入口回归及相关静态检查,并在真实 Debian 12 / SeaBIOS / GPT / Btrfs @rootfs、zlib:3 虚拟机中复现旧错误,验证演练只读、实际替换、恢复材料和固件重启。详见 BIOS GRUB 验收记录。

升级后重试:

vpsctl self update --version v0.8.17
vpsctl system kernel install-grub --disk /dev/vda

安装计划和原有 BIOS GRUB 强确认流程保持有效。schema 1 用户仍按 README 普通卸载后重装迁移。

vpsctl v0.8.16

Choose a tag to compare

@github-actions github-actions released this 28 Oct 08:43

系统内核管理现在支持 BIOS/GPT 下的单设备 Btrfs 根子卷,包括 /dev/vda3[/@rootfs]、/boot 位于根子卷内以及 zlib:3 压缩的布局。

  • 安装/修复 BIOS GRUB 时,通过挂载 UUID 和 Btrfs 设备成员识别实际启动分区,并使用实际挂载点兼容 Debian 12 的 btrfs-progs。
  • 正确识别 /@rootfs/boot/vmlinuz-... 等当前子卷内核路径,支持永久切换默认内核和卸载未使用的内核。
  • Btrfs /boot 使用固定默认菜单 ID、禁用 GRUB_SAVEDEFAULT,安装/修复时清除单次启动覆盖。多设备、缺失设备和降级挂载仍拒绝。
  • 仓库同时提供独立 PO0 中转脚本及输入编辑、历史复用功能,使用方法见 PO0 文档。

已在专用测试环境完成相关回归和静态检查,以及 Debian 12 同布局下的实际 GRUB 安装、两次固件启动、内核切换和旧内核卸载;详见 Btrfs 验收记录。发布包另按项目流程检查完整资产、摘要、安装及升级。

schema 2 用户可更新:

vpsctl --yes --non-interactive self update --version v0.8.16

这类 Btrfs BIOS 主机更新后,可执行 vpsctl system kernel install-grub --disk /dev/vda,按计划确认安装/修复;预检需要已安装 btrfs-progs。v0.8.9 的 schema 1 用户仍按 README 普通卸载后重装。

vpsctl v0.8.15

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:38

本版新增代理机器接口,供本机可信 Agent 通过 JSON 调用原有代理管理能力。

  • machine snapshot 提供完整原生节点、中转、DNS、核心状态、分享链接与可用证书指纹;稳定 revision 用于配置冲突检查。
  • machine apply 支持 23 个原生动作,在同一把代理锁内检查 expectedRevision 并执行变更;按 requestId 保存回执、重放已有结果,进程中断后的 unknown 请求不会自动重做。
  • 结果区分 applied、pending_restart、conflict、failed 和 unknown,待重启判断只关联本次操作涉及的核心。
  • 保留原生命令的危险确认标志、回滚和依赖检查;install-deps 仅授权该次变更安装缺少的依赖。

接口需要 root,JSON schemaVersion=1,不支持 --dry-run。快照包含完整节点凭据,只能交给可信 Agent。使用方法和请求格式见代理机器接口文档。

vpsctl --non-interactive service proxy machine snapshot
vpsctl --non-interactive service proxy machine apply < command.json
vpsctl --non-interactive service proxy machine result --id REQUEST_UUID

已通过专用 SSH 环境完成语法、错误级 ShellCheck、公共命令库、发布构建和入口版本检查;机器接口定向单元测试复用本次审查中同代码的通过结果。完整 22 个 schema 2 草稿资产已重新下载,与独立构建逐字节及 SHA-256 比对一致;实际安装、机器接口快照、按需下载、离线缓存、同版本修复、真实 v0.8.14 升级与失败回退、schema 1/2 迁移、普通卸载及 purge 的业务数据保护均通过,验收后原环境已恢复。未重跑全仓库套件或无关协议、内核和网络矩阵。

schema 2 用户可执行 vpsctl --yes --non-interactive self update --version v0.8.15。v0.8.9 的 schema 1 用户仍按 README 普通卸载后重装。上一正式版本 v0.8.14 保留为回退目标。

正式发布后,公网 latest/固定版本安装、机器接口快照、按需下载、离线使用及实际 v0.8.14 到 v0.8.15 升级均通过,原环境恢复比较无差异。详见完整发布验收记录。