CDN统一更新发布

当前地址:https://cdn.vvwww88.cc/index.php;首次部署包和日常更新包使用同一个上传入口,服务器会自动识别。

统一上传入口

上传首次部署包或日常更新包

支持 cdn-master.tar.gzcdn-release-YYYYMMDD-vX.Y.Z.tar.gz,服务器会按包名及包内结构自动识别和校验。

拖入一个首次部署包或日常更新包,或点击选择
尚未选择文件

上传限制:单文件 1 GB;服务器配置值 1024M / 1025M。页面访问仍应由宝塔、反向代理或防火墙限制。

首次部署

主控首次安装

等待上传

上传本地“首次部署”入口生成的包后,复制下方整行命令到新主控服务器执行。

日常更新

当前完整发布

已就绪 2026-08-18 v1.0.64(发布序号 64)

发布时间:2026-08-18T22:03:14.7547215+08:00;更新器协议:1

一、主控服务器执行

(set -e; for tool in curl openssl jq sha256sum bash mktemp flock sync tar systemctl uname stat find cp readlink tee; do command -v "$tool" >/dev/null 2>&1 || { echo "缺少更新工具: $tool" >&2; exit 1; }; done; tmp="$(mktemp -d)"; trap 'rm -rf "$tmp"' EXIT; base='https://cdn.vvwww88.cc/index.php'; release_id='00000000000000000064-v1.0.64'; public_key="${CDN_UPDATE_PUBLIC_KEY:-/etc/cdn-update/public.pem}"; download_base="$base?release=$release_id&f="; for f in release.json release.json.sig update-master.sh cdn-master.tar.gz update-node.sh node-source.tar.gz; do curl -fsSL -o "$tmp/$f" -- "$download_base$f"; done; openssl dgst -sha256 -verify "$public_key" -signature "$tmp/release.json.sig" "$tmp/release.json"; jq -e --arg release_id "$release_id" '.release_id == $release_id' "$tmp/release.json" >/dev/null; test "$(sha256sum "$tmp/update-master.sh" | awk '{print $1}')" = "$(jq -er '.artifacts.master_updater.sha256' "$tmp/release.json")"; test "$(sha256sum "$tmp/cdn-master.tar.gz" | awk '{print $1}')" = "$(jq -er '.artifacts.master_package.sha256' "$tmp/release.json")"; test "$(sha256sum "$tmp/update-node.sh" | awk '{print $1}')" = "$(jq -er '.artifacts.node_updater.sha256' "$tmp/release.json")"; test "$(sha256sum "$tmp/node-source.tar.gz" | awk '{print $1}')" = "$(jq -er '.artifacts.node_package.sha256' "$tmp/release.json")"; bash "$tmp/update-master.sh" --release_manifest "$tmp/release.json" --release_signature "$tmp/release.json.sig" --package_file "$tmp/cdn-master.tar.gz" --node_updater_file "$tmp/update-node.sh" --node_package_file "$tmp/node-source.tar.gz" --public_key "$public_key"; )

二、边缘节点灰度执行

(set -e; for tool in curl openssl jq sha256sum bash mktemp flock sync tar systemctl uname stat find cp readlink tee; do command -v "$tool" >/dev/null 2>&1 || { echo "缺少更新工具: $tool" >&2; exit 1; }; done; tmp="$(mktemp -d)"; trap 'rm -rf "$tmp"' EXIT; base='https://cdn.vvwww88.cc/index.php'; release_id='00000000000000000064-v1.0.64'; public_key="${CDN_UPDATE_PUBLIC_KEY:-/etc/cdn-update/public.pem}"; download_base="$base?release=$release_id&f="; for f in release.json release.json.sig update-node.sh node-source.tar.gz; do curl -fsSL -o "$tmp/$f" -- "$download_base$f"; done; openssl dgst -sha256 -verify "$public_key" -signature "$tmp/release.json.sig" "$tmp/release.json"; jq -e --arg release_id "$release_id" '.release_id == $release_id' "$tmp/release.json" >/dev/null; test "$(sha256sum "$tmp/update-node.sh" | awk '{print $1}')" = "$(jq -er '.artifacts.node_updater.sha256' "$tmp/release.json")"; test "$(sha256sum "$tmp/node-source.tar.gz" | awk '{print $1}')" = "$(jq -er '.artifacts.node_package.sha256' "$tmp/release.json")"; bash "$tmp/update-node.sh" --release_manifest "$tmp/release.json" --release_signature "$tmp/release.json.sig" --package_file "$tmp/node-source.tar.gz" --public_key "$public_key"; )

当前发布文件状态

文件状态大小SHA256
release.json 已就绪 1.32 KB e050598a5e3847cd2a2082b07d8270ada59d736481388050eae5c8c57c8711f2
release.json.sig 已就绪 384 B 9c67adbcb9ce6a3d71fbea0ce7f1bd33b6e1776cd350b58f334c8f35e70a77fd
cdn-master.tar.gz 已就绪 60.7 MB 3de17649037f685290b051ec804239e4d04715cc7a23e09ec1bf4092de5907bb
node-source.tar.gz 已就绪 4.06 MB 47ac0d5fe8c6c74679128d9ef88a024c9a34c0ff77cb58557c63b6f136852e80
update-master.sh 已就绪 198.97 KB dc8cbde01d8330f7a74e72f521428da3a85755fd7387c5606b8132845e454b64
update-node.sh 已就绪 88.29 KB e3c2df6ac95f73a199412aa6258e1095b6fde06ef005ad1e11b58517bb4f4146

操作顺序

  1. 首次安装运行 首次部署.bat;日常更新运行 打包更新文件.bat
  2. 把生成的单个压缩包拖到统一上传区,确认页面识别出的包类型。
  3. 首次安装复制首次安装命令;日常更新先执行主控命令。
  4. 日常更新确认主控版本后,再选择一个节点灰度更新并分批处理其余节点。