Skip to content

CDNCA 社区版 1.0.35

Latest

Choose a tag to compare

@bingfenghd bingfenghd released this 10 Nov 05:23

CDNCA 社区版 1.0.35:开源、可自托管、免激活。源码就是本仓库 main 的提交 d81a2767b3eedb14e3668e195d6fdf15bcb7bbd5。本版取代此前的 v1.0.35-ce 与 v1.0.35-ce.1(已下架),以后只保留这一版。

更新内容

  • 节点 Agent 与网关断线重连后立即重新上报在线状态;网关下发失败时自动重试,撤销集和心跳按退避间隔处理,Agent 服务改为 Restart=always

  • 主控 nginx 配置增加 /status/ 入口

  • 节点列表的月流量、XDP 过滤在批量指标返回前显示「读取中」,翻页保留上次数值

  • 修复:删除网站与边缘发布并发时偶发 500(数据库死锁 40P01)

  • 节点每次心跳上报打包脚本状态的开销降到约 1 微秒(文件无变化时不再读取;Linux 上用 inotify 监视)

  • 没有 D-Bus 的精简系统上,升级时也能替换节点打包 helper(不再依赖系统总线);替换失败时原因写进刷新结果并上报主控

  • 网站按节点屏蔽:节点只运行所在线路组与 L2 成员的网站,屏蔽列表以位图写进节点单独加密的密钥文档;旧版节点照旧收到全部网站

  • 旧版节点放不下新的密钥文档时只跳过这一台,其余节点照常发布;控制台节点列表、节点详情与发布记录标出「旧配置仍生效」,升级到支持能力 82 的版本后自动补发

  • 节点打包脚本刷新结果经心跳上报主控并显示在节点详情;root helper 进入签名 SBOM,随升级一起刷新

  • 安装器内置软件源签名公钥(不再在线获取),第三方下载有界重试

  • 浏览器挑战(JS 挑战与 CC 验证):延迟、点击、滑块、验证码几种内置模式都要求浏览器执行 JavaScript 完成工作量证明,点击、滑块、验证码的图片由节点现画、答案不写进页面;读屏用户可改用等待验证;挑战策略可选难度(12–24)

  • 网站或四层转发:删掉一个范围里最后一个网站或转发后,节点上的监听会撤下,不再继续回源

  • 节点重装后被冻结拒绝的部署会自动补发;签名信任在节点应用后立即可重发

  • 节点卸载:先校验再停服务,校验失败时节点保持运行;节点自写的版本指针链接不再导致卸载、升级、回滚失败

  • 节点打包脚本随签名发布更新:升级成功后自动刷新;已装节点可执行一次 install.sh --refresh-toolset 刷新

  • 主控更多后台服务关停时先 flush 再关闭,重启不再卡住;节点证书签发失败时日志写明原因

  • 插件:安装记录类插件暂停不用填原因;在本主控停用插件时按市场目录核对插件与功能是否对应,对不上会拒绝

  • 插件:已撤回的市场规则包在发布时不再下发到节点,撤回或恢复后挂了它的网站立即重新发布

  • 节点市场卖方:订阅用户显示卖家起的报价名,与买方看到的一致

  • dnspup 拨测:按线路组覆盖时可选择租户线路组,覆盖列表显示编号

  • 节点:WAF 封禁名单检查提速

  • 修复:主控重启时偶发因 NATS 关停超时以错误码退出

  • 插件商店:已启用的插件(含官方模块与规则包)可在本主控停用、重新启用;停用后本主控所有租户不能再用该功能,已有配置保留,不用填原因;停用前列出会一起失效的插件

  • 插件商店:卡片底部操作条同一行对齐;插件详情里的状态标签不再看不清

  • 节点市场卖方:订阅方在本主控的账号显示为「市场订阅 · 供给组名 · 订阅短号」,订阅者列表增加订阅短号列,与买方看到的编号一致

  • 节点市场买方:已购供给用卖家起的报价名显示

  • dnspup 拨测:按节点或线路组覆盖时可搜索选择节点和线路组;插件拨测请求记录按小时自动清理

  • 节点:WAF 站点不在封禁名单里时跳过名单检查;四层首包规则在数据还没到时更快重查,新建连接更快

  • 节点市场:订阅方站点的封禁名单经市场下发到供货方节点,被订阅方封禁的访客在供货方节点上直接拦截

  • 插件:租户可用的插件改由主控管理员在「安装确认与安装记录」里确认安装,并选择开放给哪些租户

  • dnspup 拨测:按用途分别计量和设上限,额度不足时自动降频;支持 ping 与 http 两种拨测;可按节点或线路组单独设置;线路异常告警;可一键发起 MTR 排障;操作日志中显示这三类动作的中文名称

  • 证书申请默认使用 HTTP 文件验证;只有选择 DNS 验证或申请通配符证书时,才带入默认 DNS API

  • 四层转发:首包数据没有一次到齐时先补读再判断;XDP 统计没有 SNI 的 TLS 连接数

  • 动态路由站点:CC 自动切换的状态可以从健康检查接口读出;按规则设置的封禁时长生效;非按客户端计数的 CC 临时封禁不再变成整站封禁

  • 节点市场卖方:修改报价时可以修改特性标签

  • 修复:批量操作的幂等冲突;部分接口错误响应格式不统一;ClickHouse 统计时间统一按 UTC 计算

  • 节点列表:线路组数量按本节点所在的线路组去重计数;待初始化页刷新时同时刷新线路组

  • DNS API 新增 6 家内置服务商:DNSPod 国际站(DNSPod.com)、GoDaddy、Namesilo、ClouDNS、Namecheap、京东云

  • 主控数据库连接池监控:连接池接近用满时告警,管理端可查看连接池使用情况

  • 节点市场:供货方节点跳过过期和重复的配置提交,市场消息中继断开后从上次位置继续接收

  • 安全策略激活:个别节点暂未就绪导致激活失败后,节点恢复时自动重新判定,不再一直停在失败

  • 节点隧道认证失败(401)的日志限速,身份被拒后重连按退避间隔进行

  • 网站列表「默认设置」:管理员可在本页为指定用户维护默认设置,列表显示所属用户;新增设置分配置对象、设置内容、生效范围三段,设置项的顺序、叫法和控件与常用习惯一致

  • 回源协议新增「跟随协议和端口」:按访客的协议和入口端口回源

  • 证书管理「默认设置」:证书类型改为「系统默认设置 / ZeroSSL / Let's Encrypt」三个按钮,改选即保存;设了默认 DNS API 后,申请证书优先用 DNS 验证

  • 网站列表与证书管理的「DNS API」改为同一页面、同一份数据:管理员直接看到全部用户的 DNS API,可按用户筛选,新增时搜索选择所属用户;解析检测里的「配置 DNS API」直接切到本页

  • 节点市场:WebSocket 改为上架必备能力;已上架的报价可在「修改报价 → 能力与防御」里重新设置能力和节点插件,插件可一键全选

  • 节点市场:供货方可在报价里选择自己的 L2 配置,订阅方网站可跟随使用供货方的 L2 回源

  • 节点市场:攻击摘要同时带上「仅记录不拦截」的事件,订阅方可按拦截 / 挑战 / 封禁 / 仅记录分别查看

  • 修复:供货方建站时读取套餐快照报错;市场消息回复重复或被拒后供货方处理停住;订阅方重试下发一直等不到回复;供货方网站更新时报幂等冲突

  • 节点列表「更多 → 重装此节点」:同一节点换新机器或重置系统后,生成一次性重装命令,新机器沿用原节点的 ID、名称、区域、IP、线路组和网站分配;装好后原机器上 Agent 的证书被吊销并断开连接

  • 节点重装后主控自动接管:重置该节点的各项下发状态并重新发布节点配置,旧机器上没完成的部署自动结束、不再挡住新发布,监控与指标按新机器重新计数

  • 证书申请的 HTTP 文件验证只认节点当前这台机器,重装后不会误判为已就绪

  • 证书自动补发:后加入线路组、重装过或当时离线的节点会自动补收网站证书,不再因缺少证书文件而拒绝 HTTPS 握手

  • 全局防火墙策略自动补发:后加入、重装过或指令没送达的节点会自动补收当前生效的策略

  • 修复:证书补发等系统下发因截止时间精度不一致,被节点一直拒收(制品完整性校验失败)

  • 删除线路分组前检查引用:仍被套餐、订阅、网站或四层转发使用时拒绝删除,并列出占用它的对象

  • 节点列表显示在线状态和节点市场供货占用;节点不能删除时写明被哪个线路组、供货组、L2 配置或未完成的任务占用

  • 修复:编辑网站时 CNAME 分配反复报冲突直到失败

  • 提交结果未确认时,四层转发、错误页、网站默认设置、DNS API、网站分组、网站列表锁定、批量监控、站内消息等弹窗可以放弃并关闭,关闭后提示刷新核对

  • 修复:系统盘剩余空间不到约 35 GiB 的主控安装到第 8 步失败(NATS 建流被拒):NATS 存储上限固定为 32 GiB

  • 主控安装配置 NATS 失败时打印 NATS 的错误码,便于判断原因

  • 主控安装前检测:/var/lib 所在分区空间不足、机器上又有未使用的整块磁盘时,给出把它挂到 /var/lib 的命令(只提示,安装器不会格式化或挂载磁盘)

  • 节点市场:节点加入或退出市场改由主控下发,不用再到节点上改配置;「我的上架」新增「可上报节点」,列出哪些节点会报给市场、其余为什么不报

  • 节点市场:只有中国大陆节点需要填写运营商,港澳台与海外节点按地区上报,运营商统一记为 BGP 多线

  • 节点市场:「我的上架」每个报价可直接修改价格与限额、下架、删除,并显示已上架 / 下架中 / 已下架三种状态

  • 修复:网站分组保存成功后仍弹出「回读尚未完成」;站点编辑页在没有分组时提示去新建,新建分组时所属用户必选

  • 节点大文件分块缓存默认开启:大文件 Range 按 4 MiB 块回源、只补缺的块,并发请求共享回源;节点配置 dynamic_routing.chunked_range: false 可关闭

  • 节点刷新索引默认开启:目录、前缀、通配符和整站刷新查索引,不再逐个读缓存文件;索引不可信时自动退回扫盘;dynamic_routing.purge_index: false 可关闭

  • 修复:大缓存目录刷新扫盘期间节点配置激活和遥测被卡住

  • 修复:缓存策略按切片缓存且开启后台更新时,切片一直显示 STALE

  • 删除节点上已不在生产路径的旧缓存任务执行器

  • 证书申请默认用 HTTP 文件验证,只有通配符域名才用 DNS 验证;提交时就检查能否验证,不能就直接说明原因

  • 申请失败或卡住不再挡住后面的申请;新申请到来时旧的卡住申请自动作废并写明原因

  • 证书列表「更多」里可在线查看证书 PEM 与私钥,各自一键复制,私钥默认遮挡

  • 修复:节点上证书一直下发失败、并可能把节点打下线(证书运行时启动凭据、配置检查截空 pid 文件、激活失败上报、首次激活残留)

  • 修复:新节点证书先于站点配置到达时节点一直显示离线;新节点首次资源下发被拒后要等 30 分钟才重试(改为 1 分钟起)

  • 修复:自动签发的证书私钥解不开导致下载失败、发不到节点

  • 修复:Ubuntu/Debian 节点上证书预检失败(OpenResty 运行用户),证书一直显示同步失败

  • 修复:节点新装后不上报 HTTP 验证能力,HTTP 证书申请一律失败

  • HTTPS 监听端口留空默认 443;开启 HTTPS 失败时显示真实原因

  • 接入状态在解析指向别处时写明域名、当前值和应改的 CNAME,可一键复制;重新生成 CNAME 前二次确认

  • 节点安装默认开启 TCP BBR(可用 --no-bbr 关闭);会话换地区重新验证默认关闭

  • 修复 Cloudflare 站点 CNAME 卡在「生成中」

安装

主控(以 root 运行,--help 可查看全部参数):

curl -fsSLO https://www.cdnca.com/downloads/ce/install-control.sh
bash install-control.sh --release-server https://www.cdnca.com/downloads/ce

安装器会从发布站下载整包和节点包,并用发布公钥核对签名和 SHA256。主控装好后,在管理端「节点列表 → 安装节点」复制节点安装命令到节点机器上运行,再在「待初始化」里初始化。详细步骤见 README。

下载地址

发布站:https://www.cdnca.com/downloads/ce/(目录结构和 --release-server 要求的一致),本页的附件与之逐字节相同。附件里的 SHA256SUMS 列出了全部文件(含公钥)。

签名

  • 社区版发布密钥 key_id:cdnca-ce-release-20261029,公钥见附件 cdnca-ce-release-20261029.public.pem
  • 主控整包、节点包、节点升级包和安装清单都用该密钥签名,安装器会逐一验签