Skip to content

Releases: YongshengWin/VpsCT

VpsCT v0.1.4

Choose a tag to compare

@YongshengWin YongshengWin released this 17 Sep 11:40

VpsCT v0.1.4

1. 安装控制端

本版不需要发布签名密钥、信任根或预置验证器。 本页命令安装 v0.1.4。始终安装最新正式版的通用命令见 README

支持 Debian / Ubuntu、Linux amd64 / arm64。以下默认安装方式会自动配置 HTTPS,需要域名解析正确,且 80/443 端口空闲、可从公网访问。

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.4/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.4 --domain panel.example.com

已有 HTTPS 入口可使用下面的方式,无需为安装器腾出 80/443 端口。入口需自行配置证书并转发到本机 127.0.0.1:8080;使用其他 HTTPS 端口时,在站点地址中填写对应端口:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.4/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.4 --site-url https://panel.example.com --no-proxy

首次创建管理员前,在服务器上读取 /opt/ctlvps/data/setup-token;令牌不出现在公开日志中。

2. 升级

安装器管理的现有安装:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.4/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.4 --update --auto-rollback

升级会短暂停止控制端并备份数据。该停服操作不会停止 VPS 上已运行的服务;新版 agent 分发文件可能触发各 VPS 的自动同步和重启。
完成本版安装后,可在「设置 → 系统 → 控制端维护」检查和升级后续版本。网页升级会在启动失败时尝试恢复旧程序和升级前数据。v0.1.1 可用上面的新版安装器命令升级,无需额外签名配置。默认采用 HTTPS 与 SHA256 校验,不提供独立发布签名或签名撤销保障。
手动安装与 Docker 部署请遵循 运维说明

3. 卸载

下载此版本的卸载脚本,在要卸载的 VPS 上运行。预览控制端卸载范围:

sudo bash /opt/ctlvps/uninstall.sh --controller --dry-run

执行卸载时将 --dry-run 改为 --yes。只卸载 agent 使用 --agent,本机两端一起卸载使用 --all。默认保留配置与数据;加 --purge 会永久删除所选端的数据及默认目录内备份。自动生成的独占 Caddy 站点可加 --purge --remove-caddy 清理。详见 卸载说明

只有 agent 的 VPS 可使用 /usr/local/libexec/ctlvps-agent-uninstall.sh --agent --dry-run(需以 sudo bash 执行)。旧版没有此入口时,下载本版 uninstall.sh 后执行 sudo bash uninstall.sh --agent --dry-run,不需要控制端或重新注册。

也可在「设置 → 系统」卸载控制端,或在服务器详情卸载 agent。删除服务器默认同时卸载,成功后自动删除面板记录;失败或离线时保留记录。操作需管理员密码、已启用的两步验证及目标名称确认;网页断开时通过目标服务器的维护日志核实最终结果。

4. 附件

每个控制端压缩包包含对应架构的控制端、两种架构的 agent、systemd 单元、卸载脚本和许可证。
SHA256SUMS 用于检查下载完整性,不替代发布者身份验证。

5. v0.1.4 — 2026-09-17

5.1 Shadowrocket 分享订阅

  • 修复 VLESS REALITY 原生配置字段:使用 pbksidfp 输出公钥、短 ID 和客户端指纹,避免混用 Clash YAML 字段后被 Shadowrocket 忽略,导致握手失败。
  • 升级控制端后,在 Shadowrocket 更新原订阅即可,无需重建分享或重置节点凭据。已有分享的 VLESS 连接已由用户实测恢复。

5.2 Agent 防火墙兼容检测

  • 对 iptables/ip6tables 的 nft 后端 INPUT 兼容链,交叉核对规则结构、协议和端口范围;仅保护 SSH 且与节点端口无重叠的 multiport 跳转,不再误报节点配置失败。
  • 保留 Fail2ban 规则,不关闭或修改其他防火墙。默认拒绝、端口重叠、未知规则、非 nft 后端及无法核对时仍报告限制,不把不确定状态当作已放行。
  • 新增字段输出、SSH 防护兼容、端口冲突、规则视图不一致及后端识别回归测试。

5.3 升级范围

  • 本版不新增数据库迁移,继续使用 schema 11。先升级控制端,再由 Agent 按正式发行校验流程同步;不需要固定测试版或暂停网页维护。
  • 防火墙兼容修复通过自动化回归测试;不声称支持任意第三方防火墙规则。现有安装、卸载及数据保留行为不变。

VpsCT v0.1.3

Choose a tag to compare

@github-actions github-actions released this 17 Sep 09:50
fd15b59

VpsCT v0.1.3

1. 安装控制端

本版不需要发布签名密钥、信任根或预置验证器。 本页命令安装 v0.1.3。始终安装最新正式版的通用命令见 README

支持 Debian / Ubuntu、Linux amd64 / arm64。以下默认安装方式会自动配置 HTTPS,需要域名解析正确,且 80/443 端口空闲、可从公网访问。

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.3/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.3 --domain panel.example.com

已有 HTTPS 入口可使用下面的方式,无需为安装器腾出 80/443 端口。入口需自行配置证书并转发到本机 127.0.0.1:8080;使用其他 HTTPS 端口时,在站点地址中填写对应端口:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.3/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.3 --site-url https://panel.example.com --no-proxy

首次创建管理员前,在服务器上读取 /opt/ctlvps/data/setup-token;令牌不出现在公开日志中。

2. 升级

安装器管理的现有安装:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.3/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.3 --update --auto-rollback

升级会短暂停止控制端并备份数据。该停服操作不会停止 VPS 上已运行的服务;新版 agent 分发文件可能触发各 VPS 的自动同步和重启。
完成本版安装后,可在「设置 → 系统 → 控制端维护」检查和升级后续版本。网页升级会在启动失败时尝试恢复旧程序和升级前数据。v0.1.1 可用上面的新版安装器命令升级,无需额外签名配置。默认采用 HTTPS 与 SHA256 校验,不提供独立发布签名或签名撤销保障。
手动安装与 Docker 部署请遵循 运维说明

3. 卸载

下载此版本的卸载脚本,在要卸载的 VPS 上运行。预览控制端卸载范围:

sudo bash /opt/ctlvps/uninstall.sh --controller --dry-run

执行卸载时将 --dry-run 改为 --yes。只卸载 agent 使用 --agent,本机两端一起卸载使用 --all。默认保留配置与数据;加 --purge 会永久删除所选端的数据及默认目录内备份。自动生成的独占 Caddy 站点可加 --purge --remove-caddy 清理。详见 卸载说明

只有 agent 的 VPS 可使用 /usr/local/libexec/ctlvps-agent-uninstall.sh --agent --dry-run(需以 sudo bash 执行)。旧版没有此入口时,下载本版 uninstall.sh 后执行 sudo bash uninstall.sh --agent --dry-run,不需要控制端或重新注册。

也可在「设置 → 系统」卸载控制端,或在服务器详情卸载 agent。删除服务器默认同时卸载,成功后自动删除面板记录;失败或离线时保留记录。操作需管理员密码、已启用的两步验证及目标名称确认;网页断开时通过目标服务器的维护日志核实最终结果。

4. 附件

每个控制端压缩包包含对应架构的控制端、两种架构的 agent、systemd 单元、卸载脚本和许可证。
SHA256SUMS 用于检查下载完整性,不替代发布者身份验证。

5. v0.1.3 — 2026-09-17

5.1 登录、连接与状态反馈

  • 修复实时事件流被 20 秒请求读取期限打断的问题;失效连接被代理复用时会取消后续认证查询,造成登录失败、总览无法加载和 Agent 反复离线。读取期限现在仅覆盖实际请求体读取,结束后清理连接期限。
  • 区分凭据失效与数据库暂时不可用,避免将内部查询错误报告为密码错误或 Agent 令牌被吊销;前端仅在确认为未授权时退出登录,暂时故障提供重试。
  • 登录提交读取表单实际值,修复浏览器自动填充与组件状态不一致;总览加载失败显示原因和重试入口。
  • 配置状态区分已下发、等待应用、应用失败和已应用,后台安装过程中不再提前标记完成。

5.2 服务器删除与独立卸载

  • 删除服务器默认同时卸载 Agent 及其部署的服务,允许显式取消勾选,仅删除面板记录。
  • 联动卸载沿用管理员二次认证;只有收到经过认证的卸载成功回执才删除服务器、所属节点及依赖的链式节点。卸载离线、失败或结果未确认时保留记录,关闭页面不影响任务。
  • 卸载结果与记录删除在同一事务提交,保留任务回执以处理重复报告;删除失败不会提前确认成功。
  • Agent 安装器从同一官方发行包获取并校验独立卸载脚本,保存到 /usr/local/libexec/ctlvps-agent-uninstall.sh。旧安装也可下载官方脚本清理,不需要控制端、面板记录或注册令牌。
  • 仅删除记录的弹窗提供后续清理命令。卸载默认保留配置和数据,显式 --purge 才清空;保护同机控制端及无关服务。

5.3 Agent 内存与后台任务

  • 合并连接日志队列,使用有界环形缓冲、条数与字节预算,限制配对缓存、命令输出、JSON 解码和状态文件体积。
  • 下载与归档处理采用流式、限量方式;内核安装和 Agent 更新交给单个受限后台任务执行,主循环持续上报心跳和待应用状态。
  • 常驻 Agent 使用 64 MiB Go 软预算;新安装服务配置 MemoryHigh=160M、MemoryMax=192M 和 TasksMax=128。旧 systemd 单元需通过安装器更新,单纯替换二进制不会改写这些限制。
  • 配置激活先验证,失败恢复;维护与后台安装避免重复执行和资源竞争。资源限制不构成大规模节点或并发容量承诺。

5.4 节点、计量与订阅

  • 新增已部署节点的批量凭据重置,按服务器合并下发配置,返回逐项结果;链式节点同步关联凭据,明确区分发布成功和 Agent 应用成功。
  • 节点撤销与清理先停止写入、持久化最终计量批次,收到控制端确认后再清理;结算与去重记录同事务提交,支持重启和回执丢失后的幂等重试。
  • 完善节点删除后的关联链清理及专用入站防火墙规则回收,保留无关规则。
  • Surge 订阅输出当前订阅对应的托管更新地址,替换模板中的旧地址并固定格式,避免后台更新依赖客户端 User-Agent。

5.5 升级与验证范围

  • 数据库从 v0.1.2 的 schema 9 迁移至 schema 11,新增最终计量结算去重,并让维护回执在服务器删除后仍可确认。升级前备份数据库及密钥;回退需要配套数据备份,不能只换旧二进制。
  • 先升级控制端,再同步 Agent。控制端升级可能触发 Agent 自动同步和短暂重启;先在测试机器验证,再推广。独立卸载入口随新版安装器安装或终端更新落地。
  • 本次已验证 Linux amd64 测试部署中的登录、Agent 公网认证与连续心跳;真实 HTTP 测试覆盖实时流保活后复用同一连接继续认证。卸载在隔离 systemd/nftables 容器验证 18 项场景,包括没有控制端的独立清理。
  • 最终标签提交的 CI、发行附件和安装/升级/恢复验收仍以发布前记录为准;工作树测试构建不等同于已公开发行,交叉编译不等同于双架构实机验收。

VpsCT v0.1.2

Choose a tag to compare

@YongshengWin YongshengWin released this 16 Sep 09:58

VpsCT v0.1.2

1. 安装控制端

本版不需要发布签名密钥、信任根或预置验证器。 本页命令安装 v0.1.2。始终安装最新正式版的通用命令见 README

支持 Debian / Ubuntu、Linux amd64 / arm64。以下默认安装方式会自动配置 HTTPS,需要域名解析正确,且 80/443 端口空闲、可从公网访问。

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.2/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.2 --domain panel.example.com

已有 HTTPS 入口可使用下面的方式,无需为安装器腾出 80/443 端口。入口需自行配置证书并转发到本机 127.0.0.1:8080;使用其他 HTTPS 端口时,在站点地址中填写对应端口:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.2/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.2 --site-url https://panel.example.com --no-proxy

首次创建管理员前,在服务器上读取 /opt/ctlvps/data/setup-token;令牌不出现在公开日志中。

2. 升级

安装器管理的现有安装:

curl -fLsS --proto '=https' --proto-redir '=https' https://github.com/YongshengWin/VpsCT/releases/download/v0.1.2/install.sh -o install-vpsct.sh &&
sudo bash install-vpsct.sh --version v0.1.2 --update --auto-rollback

升级会短暂停止控制端并备份数据。该停服操作不会停止 VPS 上已运行的服务;新版 agent 分发文件可能触发各 VPS 的自动同步和重启。
完成本版安装后,可在「设置 → 系统 → 控制端维护」检查和升级后续版本。网页升级会在启动失败时尝试恢复旧程序和升级前数据。v0.1.1 可用上面的新版安装器命令升级,无需额外签名配置。默认采用 HTTPS 与 SHA256 校验,不提供独立发布签名或签名撤销保障。
手动安装与 Docker 部署请遵循 运维说明

3. 卸载

下载此版本的卸载脚本,在要卸载的 VPS 上运行。预览控制端卸载范围:

sudo bash /opt/ctlvps/uninstall.sh --controller --dry-run

执行卸载时将 --dry-run 改为 --yes。只卸载 agent 使用 --agent,本机两端一起卸载使用 --all。默认保留配置与数据;加 --purge 会永久删除所选端的数据及默认目录内备份。自动生成的独占 Caddy 站点可加 --purge --remove-caddy 清理。详见 卸载说明

也可在「设置 → 系统」卸载控制端,或在服务器详情卸载 agent。操作需管理员密码、已启用的两步验证及目标名称确认;网页断开时通过目标服务器的维护日志核实最终结果。

4. 附件

每个控制端压缩包包含对应架构的控制端、两种架构的 agent、systemd 单元、卸载脚本和许可证。
SHA256SUMS 用于检查下载完整性,不替代发布者身份验证。

5. v0.1.2 — 2026-09-16

5.1 面板与数据安全

  • 完善管理接口角色检查、Origin/CSRF、Host 与可信反向代理边界,使用安全会话 Cookie;账号安全状态变化后撤销旧会话,SSE 持续检查权限。
  • 外部订阅请求限制协议、地址、重定向、响应大小和并发,实际连接绑定已校验 IP;默认拒绝访问本机、私网和元数据地址,减少 SSRF 与 DNS 重绑定风险。
  • 加强头像解码重编码、CSP、订阅参数白名单与输出转义,限制解析、密码校验、请求和日志的资源开销;注册令牌单次消费、设备配置绑定和日志去重。
  • 敏感字段加密保存,新增独立密钥和加密一致性备份;恢复时清理旧会话与注册能力。数据库迁移至 schema 9,备份与恢复必须同时保存相应密钥及状态。

5.2 更新与维护安全

  • 默认使用官方 HTTPS 下载与 SHA256 完整性校验,不需要发布签名密钥、独立元数据服务或预置验证器。agent 对照固定官方发行源校验,内核限制固定上游下载地址。
  • 网络处理使用专用低权限身份,root 端仅执行固定且受本机策略允许的操作;网页不能任意指定命令、安装来源、路径或私网权限。
  • 升级前核对恢复材料完整性与安全底线;补充磁盘/inode 预算、日志轮转及清理限制,保留必要恢复数据。
  • v0.1.1 可直接使用新版安装器升级;停服前验证下载与恢复文件,失败自动回滚。默认校验依赖 GitHub/上游 HTTPS,不提供独立发布签名、签名撤销或安全代次保证。可选签名配置说明见 安全迁移

5.3 代理隔离与运行期保护

  • sing-box 和 Snell 使用专用低权限账户,移除代理 NET_ADMIN,限制原始套接字;代理不能读取管理数据库、维护 socket 或源证书目录。
  • 普通节点继续共享 sing-box 进程;仅同时配置私网授权节点时分为两个权限组。Snell 仍每节点一个官方进程,流量公式与节点身份不变。
  • cgroup 出站规则独立于计量标记,防止通过修改 mark 绕过受保护目的地址限制;新增有效 mark 白名单,拦截未知、跨权限组和失效标记。
  • 新增每 5 秒运行的本地防火墙守护:规则丢失或变更时原子修复;恢复失败则撤销启动许可并强制停止代理,恢复后仅启动守护器暂停且仍有效的服务。检查不依赖控制端或 agent 轮询,不重置计费计数器。
  • 运行配置移至 /etc/ctlvps-proxy,保留管理目录权限;证书采用验证后的快照,原生 ACME 保留账户与状态,配置切换失败恢复原服务。

5.4 验证与限制

  • 已通过隔离环境的 96 项网络边界、六种 sing-box 协议的 24 条 IPv4/IPv6 TCP/UDP 路径、正常计量、故障恢复、17 项卸载及目标机原生 systemd 验证。
  • 官方 Snell 5.0.1 与 OpenSnell 测试客户端的密码认证、IPv4/IPv6 TCP/UDP、连接复用和错误密码拒绝通过;未覆盖 Surge 专用 QUIC 模式。
  • 测试 CA 的完整 ACME 签发、自动续期、无重启热加载、账户保留及重启持久化通过;公有 CA 的实际域名和公网挑战路径需在启用时验收。
  • 守护器在本地 Linux ARM64、小规模规则下连续 15 次检查的 cgroup 内存峰值约 3.3–3.8 MiB,耗时中位数约 11 ms;不是全部机器、冷启动或大规模规则的资源上限。
  • 保留共享进程意味着代理被完全控制后仍可能冒用同组有效节点标记;原生 ACME 保留零 mark 例外。规则守护存在检测间隔,不抵抗宿主 root 同时禁用保护。
  • 首次代理权限切换可能短暂断连;安装、迁移和生产部署须按 验证记录 与本机策略执行。不能仅替换旧二进制回退数据库迁移。

6. 同版本修订说明

2026-09-16 重新发布 v0.1.2:修正服务器安全状态提示,将“独立验签”改为“更新文件校验与本机安全策略”,并同步修正旧版 agent、策略加载失败提示。仅修改界面文案,不改变安全机制或功能。已安装此前 v0.1.2 的用户需要重新更新控制端才能看到新提示。