Skip to content

Releases: marvinli001/edgeweir

Edgeweir 20261029-8dccef0

Choose a tag to compare

@marvinli001 marvinli001 released this 29 Oct 10:09

控制台镜像 ghcr.io/marvinli001/edgeweir:20261029-8dccef0,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.6.1。

新界面

  • 控制台改为企业控制台外观:56px 顶栏(搜索 ⌘K、语言、主题、账户)、可收起的分组侧边栏、白色页头条带与线形页签、灰色画布上的面板;只用 Arc 免费组件,去掉装饰特效
  • 设置表单标签在左、保存栏与控件对齐;初始化页分三步;状态页(404、403、失败、无法连接)与节点错误页使用同一张卡片
  • 列表:整行可点开、表头可排序且排序/筛选/页码保存在网址里;筛选无结果时可一键清除;手机上表格变卡片,触控目标 44px
  • 相对时间悬停显示完整时间;不可用的按钮在提示里说明原因;表单对话框以「取消」和提交按钮结束;命令菜单可直接申请证书
  • 登录与初始化页可切换语言;已删除的网站或四层应用的旧链接会说明缺了什么并带回列表
  • 浅色主题的警告文字改为 #AD5200,在警告底色上达到 4.5:1 对比度

改进

  • AccessKey 的每分钟限额在控制台内按固定窗口校验
  • 集群列表不再读取修订配置,节点只统计一次

兼容性

  • 控制台 20261029-8dccef0(stable)与 edgeweir-node 1.6.1(错误页与挑战页的新外观);旧节点照常工作;proto v1.6.0,不变
  • 没有新的数据库迁移

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261029-8dccef0
  3. 节点:在控制台的节点升级里升到 1.6.1(可选)

Edgeweir 20261029-0c26898

Choose a tag to compare

@marvinli001 marvinli001 released this 29 Oct 12:32

控制台镜像 ghcr.io/marvinli001/edgeweir:20261029-0c26898,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.6.2。

新功能

  • 概览「边缘网络」卡片恢复慢转的地球,并标出各节点公网 IP 所在位置:节点用自己的 GeoIP 数据库查出(有 City MMDB 时到城市,只有内置 IPinfo Lite 时在国家中心),按健康状态着色、按节点数定大小,可拖动;离屏、标签页在后台或减少动态效果时停转
  • 控制台不查外部服务,也不发出节点地址

兼容性

  • 控制台 20261029-0c26898(stable)与 edgeweir-node 1.6.2;旧节点照常工作,只是不出现在地球上
  • proto v1.7.0(心跳新增 locate_address 与 location)
  • 数据库迁移 0081_node_location(node.location),启动时自动执行

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261029-0c26898
  3. 节点:在控制台的节点升级里升到 1.6.2,地球上才会出现该节点

Edgeweir 20261027-7deea31

Choose a tag to compare

@marvinli001 marvinli001 released this 27 Oct 03:36

控制台镜像 ghcr.io/marvinli001/edgeweir:20261027-7deea31,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.6.0。

安全

  • 镜像的 Node.js 从 24.21.0 升到 24.22.1,修复 Node.js 的 Brotli 解压缩漏洞。建议尽快升级

新功能

  • AccessKey 每分钟请求数:创建时可设置(默认 600,1–100000 或不限),也可在密钥行编辑名称与上限,修改写入审计日志,见 AccessKey

修复

  • 配置金丝雀的窗口从候选版本的第一个完整分钟开始计算
  • 控制台界面组件统一,修正下拉框在对话框中被遮挡、按钮误提交表单等问题;界面文案与术语统一

兼容性

  • 控制台 20261027-7deea31(stable)与 edgeweir-node 1.6.0;proto v1.6.0,不变
  • 没有新的数据库迁移

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261027-7deea31
  3. 节点不需要升级

Edgeweir 20261023-ba5683d

Choose a tag to compare

@marvinli001 marvinli001 released this 23 Oct 06:20

控制台镜像 ghcr.io/marvinli001/edgeweir:20261023-ba5683d,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.6.0。

新功能

  • IP 灰名单:名单中的地址不被拦截,而是被挑战或限速(超出返回 429),到期自动移出,按网站或全局设置,见 灰名单(节点 1.6.0)
  • 连接数限制:按集群在内核限制每个客户端的并发 TCP 连接与每秒新建连接,随配置版本下发、可回滚,见 连接数限制(节点 1.6.0)
  • 编码路径例外:为对象存储、矩阵参数等路径声明允许 %2F 或 ; 参数的原始路径前缀,这些请求按普通路径做访问控制与缓存,见 编码路径例外(节点 1.6.0)
  • 回源 PROXY protocol:按源站向 HTTP / HTTPS 源站发送 PROXY protocol v1 或 v2,源站拿到访问者地址,见 PROXY protocol(节点 1.6.0)
  • gRPC 主动健康检查:主动健康检查可以用 grpc.health.v1 探测源站,见 gRPC 探测(节点 1.6.0)
  • 回源 CA 轮换:Origin CA 与回源客户端 CA 都可以换成新的,新旧 CA 并存期间连接与证书不中断,确认后退役旧 CA,见 轮换 CA(Origin CA 轮换需要节点 1.6.0)
  • 节点 debug 日志:在节点「日志」页签按需拉取节点内存中最近的全部级别日志,可筛选、下载,见 Debug 日志(节点 1.6.0)
  • 规则版本历史:每条规则的每次修改都有版本,可对比、恢复,删除的规则也能恢复,见 版本历史与恢复
  • 短信告警:阿里云与腾讯云短信渠道,按渠道限制每小时与每天的条数,见 短信渠道
  • deploy.sh 离线安装(EDGEWEIR_NO_PULL)支持 Docker 经典镜像存储;EDGEWEIR_POSTGRES_IMAGE 可指定 PostgreSQL 镜像,见 deploy.sh

兼容性

  • 控制台 20261023-ba5683d(stable)与 edgeweir-node 1.6.0;proto v1.6.0
  • 数据库迁移 0075_alert_channel_send_times、0076_rule_versions、0077_node_debug_log、0078_greylist_connection_limits、0079_origin_proxy_protocol、0080_origin_ca_rotation,启动时自动执行
  • 旧节点(1.0.x–1.5.0)继续工作:不会收到灰名单条目,也不执行连接数限制与编码路径例外;含 PROXY protocol 源站、gRPC 健康检查的配置与 Origin CA 轮换需要节点 1.6.0,界面会提示;拉取 debug 日志需要节点 1.6.0。可直接经「节点升级」升级
  • 节点 1.6.0 配合旧控制台也能工作,新功能不生效

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261023-ba5683d
  3. 节点:「节点升级」升级到 1.6.0,或安装命令加 --version 1.6.0

已知限制

  • 短信告警只支持阿里云与腾讯云,尚未用真实账户验证投递;其他服务商可用 Webhook 渠道
  • 规则版本历史只覆盖「规则」页签的网站规则与全局规则,访问鉴权、缓存、WAF、批量重定向与调度规则没有版本历史;保留条数固定(每条规则 50 个版本、删除的规则 100 条)
  • 连接数限制按集群设置,不按网站或端口分别设值,不限制 UDP;灰名单限速按节点分别计数
  • PROXY protocol 按源站设置,S3 源站不支持;回源连接按访问者连接、在每个 nginx worker 内复用
  • 金丝雀窗口按整分钟统计 5xx:站点正在出错时发布的修复,可能因同一分钟内此前的错误被回滚
  • 源站信任只能选系统 CA 或 Origin CA,不能同时信任两者
  • 时钟偏差由心跳的往返估算,误差不超过往返时间的一半;往返超过 10 秒的心跳不测量
  • 回源耗时的 p50 / p95 由节点的 11 档计数估算,超过 10 秒只显示「> 10 秒」;回源质量只看单个网站,没有按源站的告警
  • 控制台部署在平台代理后面而没有设置 EDGEWEIR_TRUSTED_PROXIES 时,所有访问者显示同一个代理地址,登录 IP 白名单起不到作用
  • 所有节点跟随同一个节点通道地址,没有按节点的例外
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法、且不在编码路径例外中的请求,按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261023-ba5683d \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261021-2dfa7c2

Choose a tag to compare

@marvinli001 marvinli001 released this 21 Oct 06:55

控制台镜像 ghcr.io/marvinli001/edgeweir:20261021-2dfa7c2,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.5.0。

新功能

  • 节点时钟偏差:节点每次心跳测量自己与控制台的时钟偏差,节点详情显示「时钟偏差」(同步、快、慢,超过阈值标「偏差过大」);新告警「节点时钟偏差过大」按节点触发,阈值在告警规则中设置(默认 30 秒),见 设置告警规则(节点 1.5.0)
  • DNS 对账持续失败告警:某个集群的 DNS 对账连续失败 5 分钟时触发,下一次对账成功时恢复,见 集群与 DNS 告警
  • 删除集群时,它尚未恢复的集群告警一并恢复
  • 节点诊断:sudo edgeweir-node diagnose 逐项检查身份、证书、控制台、时钟、agent、配置与数据面;edgeweir-node pprof 从本机诊断 socket 取 Go profile,见 排障(节点 1.5.0)

兼容性

  • 控制台 20261021-2dfa7c2(stable)与 edgeweir-node 1.5.0;proto v1.5.0
  • 数据库迁移 0074_node_clock_dns_failures,启动时自动执行
  • 旧节点(1.0.x–1.4.0)继续工作,只是不上报时钟偏差,节点详情不显示这一项,也不会触发时钟告警。可直接经「节点升级」升级
  • 节点 1.5.0 配合旧控制台也能工作,只是测不到偏差,diagnose 跳过时钟一项

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261021-2dfa7c2
  3. 节点:「节点升级」升级到 1.5.0,或安装命令加 --version 1.5.0

已知限制

  • 时钟偏差由心跳的往返估算,误差不超过往返时间的一半;往返超过 10 秒的心跳不测量
  • 回源耗时的 p50 / p95 由节点的 11 档计数估算,超过 10 秒只显示「> 10 秒」;回源质量只看单个网站,没有按源站的告警
  • 源站信任只能选系统 CA 或 Origin CA,不能同时信任两者
  • 节点卡片上的「应用失败」标记不能直接跳到日志页签
  • 控制台部署在平台代理后面而没有设置 EDGEWEIR_TRUSTED_PROXIES 时,所有访问者显示同一个代理地址,登录 IP 白名单起不到作用
  • 所有节点跟随同一个节点通道地址,没有按节点的例外
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261021-2dfa7c2 \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261020-a4db6e1

Choose a tag to compare

@marvinli001 marvinli001 released this 20 Oct 03:13

控制台镜像 ghcr.io/marvinli001/edgeweir:20261020-a4db6e1,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.3.1。

新功能

  • 攻击页签:网站新增「攻击」页签,汇总拦截原因随时间的变化、各节点的 CC 级别、Top IP 与路径、CRS 与记录规则、挑战通过率、鉴权失败与安全事件,任一行可跳到按条件筛选的访问日志;原「安全」页签上的统计卡片移到这里,见 攻击与自动缓解
  • 自动缓解:网站的 CC 级别升到设定的触发级别时自动开启 Under Attack,级别最后一次达到之后保持设定的分钟数(默认 30)再自动关闭;运营者手动开关 Under Attack 优先,「立即结束」可提前关闭。在「攻击」页签顶部的卡片设置,见 自动缓解
  • 缓存规则新增「静态资源」模板
  • API:新增 autoMitigation.get、update、restore;analytics.breakdown 支持 by: block_reason;security.events 可按小时范围筛选,security.state 的 Top 榜最长 30 天

改进

  • 节点 1.3.1:只支持 h2c 的源站立即返回 502(以前约 65 秒后才按 HTTP/0.9 转发并保持连接);没有 Content-Length 的请求体按网站自己的上限读取,超限即 413
  • 封禁对话框的网站选择框有占位提示;一次性验证码的数字更大
  • 概览的小指标卡在所选范围内没有数据时只显示数值
  • 英文界面窄屏下 GeoIP 表不再横向滚动;对话框分组改为细线分隔;DNS 绑定表按集群、域名、模式、状态排列

兼容性

  • 控制台 20261020-a4db6e1(stable)与 edgeweir-node 1.3.1;proto v1.3.0(未变)
  • 数据库迁移 0072_site_auto_mitigation,启动时自动执行
  • 旧节点(1.0.x–1.3.0)继续工作;自动缓解只用节点已上报的 CC 级别,不需要新节点

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261020-a4db6e1
  3. 节点:「节点升级」升级到 1.3.1,或安装命令加 --version 1.3.1

已知限制

  • 源站信任只能选系统 CA 或 Origin CA,不能同时信任两者
  • 节点卡片上的「应用失败」标记不能直接跳到日志页签
  • 控制台部署在平台代理后面而没有设置 EDGEWEIR_TRUSTED_PROXIES 时,所有访问者显示同一个代理地址,登录 IP 白名单起不到作用
  • 所有节点跟随同一个节点通道地址,没有按节点的例外
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261020-a4db6e1 \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261020-5b9cf50

Choose a tag to compare

@marvinli001 marvinli001 released this 20 Oct 05:08

控制台镜像 ghcr.io/marvinli001/edgeweir:20261020-5b9cf50,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.4.0。

新功能

  • 回源质量:网站「源站」页签新增「回源质量」卡片,按所选时间范围显示每个源站的回源请求、错误率(无法连接、超时、TLS 失败、无效回答、5xx)、到响应头的耗时 p50 / p95,以及 p95 与错误率随时间的折线。数据来自节点每分钟上报的计数,不受访问日志采样率影响,见 回源质量(节点 1.4.0)
  • API:新增 sites.originQuality(GET /sites/{id}/origins/quality)

兼容性

  • 控制台 20261020-5b9cf50(stable)与 edgeweir-node 1.4.0;proto v1.4.0
  • 数据库迁移 0073_origin_stats,启动时自动执行
  • 旧节点(1.0.x–1.3.1)继续工作,只是不上报回源计数:集群中有旧节点时卡片显示一行提示,数字只含新节点。可直接经「节点升级」升级
  • 节点 1.4.0 配合旧控制台也能工作

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261020-5b9cf50
  3. 节点:「节点升级」升级到 1.4.0,或安装命令加 --version 1.4.0

已知限制

  • 回源耗时的 p50 / p95 由节点的 11 档计数估算,超过 10 秒只显示「> 10 秒」;回源质量只看单个网站,没有按源站的告警
  • 源站信任只能选系统 CA 或 Origin CA,不能同时信任两者
  • 节点卡片上的「应用失败」标记不能直接跳到日志页签
  • 控制台部署在平台代理后面而没有设置 EDGEWEIR_TRUSTED_PROXIES 时,所有访问者显示同一个代理地址,登录 IP 白名单起不到作用
  • 所有节点跟随同一个节点通道地址,没有按节点的例外
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261020-5b9cf50 \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261015-21b83dc

Choose a tag to compare

@marvinli001 marvinli001 released this 15 Oct 12:10

控制台镜像 ghcr.io/marvinli001/edgeweir:20261015-21b83dc,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.3.0。

新功能

  • 源站保护:节点回源时出示控制台签发的客户端证书(mTLS,按集群签发,90 天有效、到期前 30 天自动轮换),源站可只接受边缘节点;控制台的 Origin CA 为源站签发证书(生成私钥只显示一次,或提交 CSR),可下载、吊销,网站可设为只信任 Origin CA,吊销在下一个配置版本生效。在 证书 页的「源站证书」「回源客户端」页签管理,在网站「源站池设置」中开启,见 源站保护(节点 1.3.0)
  • 节点日志:节点详情新增「日志」页签,查看 Agent、监督进程、OpenResty 与 Lua 的警告、错误和关键事件,可按级别、来源筛选,不用登录节点主机;条目在节点与控制台各脱敏一次。保留期在 系统设置 的「节点日志保留期」设置(默认 7 天、每节点 10,000 条),见 节点日志(节点 1.3.0)
  • 用量保护:为网站设置每日或每月的发送流量、请求数与带宽上限,接近上限与达到上限时告警,达到上限时可自动开启维护模式或停用网站,支持自动或手动恢复。在网站「概览」页签的「用量保护」卡片设置,见 用量保护
  • 登录 IP 白名单:只允许名单内的地址登录和使用会话;AccessKey、服务账号 key 与演示账号不受限;保存不含当前 IP 的名单会被拒绝,被锁在外面时在服务器上执行 recover.js --clear-login-allowlist,见 登录 IP 白名单
  • API:新增 originCa、originCertificates、originClientCa、节点日志与保留设置、网站用量保护、settings 的登录 IP 白名单;源站池增加 tlsTrust、clientCertificate

改进

  • 节点 1.3.0 启动与重载时不再输出 nginx 配置警告(duplicate MIME type、could not build optimal variables_hash)

兼容性

  • 控制台 20261015-21b83dc(stable)与 edgeweir-node 1.3.0;proto v1.3.0
  • 数据库迁移 0069_site_usage_guard、0070_node_logs、0071_origin_protection,启动时自动执行
  • 旧节点(1.0.x–1.2.0)继续工作:节点日志页签显示「节点版本过低」;集群中有网站开启回源客户端证书或信任 Origin CA 后,旧节点显示「需要升级」并保留原配置。可直接经「节点升级」升级
  • 节点 1.3.0 配合旧控制台也能工作

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261015-21b83dc
  3. 节点:「节点升级」升级到 1.3.0,或安装命令加 --version 1.3.0;远程升级后重启一次节点服务(systemctl restart edgeweir-node)才能收到 OpenResty 日志

已知限制

  • 源站信任只能选系统 CA 或 Origin CA,不能同时信任两者
  • 节点卡片上的「应用失败」标记不能直接跳到日志页签
  • 控制台部署在平台代理后面而没有设置 EDGEWEIR_TRUSTED_PROXIES 时,所有访问者显示同一个代理地址,登录 IP 白名单起不到作用
  • 所有节点跟随同一个节点通道地址,没有按节点的例外
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 没有 Content-Length 的请求体由节点读完(不超过节点的全局上限)后再按网站限制判断
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261015-21b83dc \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261013-7977f2f

Choose a tag to compare

@marvinli001 marvinli001 released this 13 Oct 23:30

控制台镜像 ghcr.io/marvinli001/edgeweir:20261013-7977f2f,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.2.0。

新功能

  • 已注册的节点与区域探针跟随节点通道地址:在 系统设置 → 节点通道 改地址后,节点先用注册时固定的 CA 与自己的证书检查新地址,通过后自动切换,原地址留作备用地址,不重启、不重新注册;https://、wss://、ws:// 之间可以互相切换(节点 1.2.0)
  • 新地址检查未通过的节点留在原地址,节点列表标「无法切换」并给出原因;还没切换的标「未切换」,正在用备用地址的标「用备用地址」,1.2.0 以前的节点标「需升级才能切换」。节点详情显示在用的地址与备用地址,探针列表同样标注
  • 节点通道卡片显示「已切换节点 N/M」「已切换探针 N/M」,并列出此前地址留在证书中的旧名称及仍用它连接的节点与探针数;计数为 0 时可以把名称从证书中移除。此前用过 wss://、ws:// 地址时,没有节点再经 WebSocket 入口连接后可以关闭入口。迁移步骤见 更换节点通道地址
  • 旧地址先下线、节点已失联时,在节点上执行 sudo edgeweir-node set-server --server <新地址> 恢复,不必重新注册(节点 1.2.0)
  • API:settings.nodeChannel 增加 serverName、previousNames、webSocket、adoption;新增 DELETE /settings/node-channel/names/{name} 与 DELETE /settings/node-channel/websocket;节点与探针增加 channel

改进

  • LICENSING 列出新归入独立商业产品的能力:跨集群汇总的攻击大盘与回源质量视图、按学习基线的自适应七层 DDoS 缓解、Bot 评分。按网站的攻击大盘、按源站的回源质量视图与按阈值的自动缓解仍在开源核心

兼容性

  • 控制台 20261013-7977f2f(stable)与 edgeweir-node 1.2.0;proto v1.2.0
  • 数据库迁移 0068_node_channel_status,启动时自动执行
  • 旧节点(1.0.x、1.1.0)继续工作,忽略新增字段,按注册时的地址连接;界面按它们最近一次连接的 TLS 服务器名判断在用的地址。可直接经「节点升级」升级
  • 节点 1.2.0 配合旧控制台也能工作:不会收到新地址,set-server 照常可用

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261013-7977f2f
  3. 节点:「节点升级」升级到 1.2.0,或安装命令加 --version 1.2.0

已知限制

  • 所有节点跟随同一个节点通道地址,没有按节点的例外;到不了新地址的节点留在原地址并每小时重试
  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 没有 Content-Length 的请求体由节点读完(不超过节点的全局上限)后再按网站限制判断
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261013-7977f2f \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Edgeweir 20261013-19b356a

Choose a tag to compare

@marvinli001 marvinli001 released this 13 Oct 10:39

控制台镜像 ghcr.io/marvinli001/edgeweir:20261013-19b356a,同一 digest 标为 stable;Compose、deploy.sh、Zeabur、Render、Fly.io、Railway 与 bunny.net 的部署默认使用 stable,latest 继续跟随 master。配套节点 edgeweir-node 1.1.0。

安全修复

  • 访问控制(地区、UA、防盗链)的路径前缀不再区分 ASCII 大小写,/ADMIN/ 属于 /admin/ 的范围;排除前缀、防盗链跳转目标与 CORS 前缀仍精确匹配(节点 1.1.0)
  • 停用或删除的访问鉴权规则设置过的身份头继续从回源请求中删除,网站已没有规则时也一样。网站「访问控制」页签列出这些头,可选「不再清除」(节点 1.1.0;旧节点只删除启用规则的身份头)
  • 网站的请求体大小限制也作用于没有 Content-Length 的请求体(HTTP/1.1 chunked、HTTP/2、HTTP/3),超过时返回 413(节点 1.1.0)
  • 防盗链跳转目标不再接受中间含 //、点段、; 或百分号转义的本站路径;已保存的这类规则改为直接拒绝(403)
  • WebP / AVIF 转换:输出不超过原图大小,缓存前检查容器格式,转换进程设置 no_new_privs(节点 1.1.0)

改进

  • 节点无法加载某张证书(例如显式曲线参数的 EC 证书)时不再拒绝整个配置版本:其余配置照常应用,用到该证书的网站与四层应用继续使用节点上已有的上一版证书,没有上一版时拒绝其 TLS 握手,不会换用别的证书。证书页与节点显示未加载的证书,并产生告警「节点无法加载证书」;灰度节点无法加载新证书时发布自动回滚(节点 1.1.0)
  • 缺少新版节点安全修复的节点在节点列表标为「建议升级」
  • 缓存规则「遵循源站 Cache-Control」成为数据库默认值
  • 数据库连接的 TLS 错误提示检查 DATABASE_URL 的 sslmode
  • Fly.io、Railway 与 bunny.net 部署文档改用 stable

兼容性

  • 控制台 20261013-19b356a(stable)与 edgeweir-node 1.1.0
  • 数据库迁移 0065_cache_rule_respect_default、0066_auth_identity_headers、0067_node_certificate_failures,启动时自动执行
  • 旧节点(1.0.x)继续工作,忽略新增字段;上面标注节点 1.1.0 的修复要节点升级后生效。可直接经「节点升级」升级
  • 节点 1.1.0 配合旧控制台也能工作:照常隔离无法加载的证书(控制台不显示),只删除启用规则的身份头

升级

  1. 备份数据库(docs/deploy/backup.md)
  2. 控制台:./deploy.sh update 或把镜像改为 20261013-19b356a
  3. 节点:「节点升级」升级到 1.1.0,或安装命令加 --version 1.1.0

已知限制

  • 演示账号看到的网站、节点、证书、DNS 与告警设置与管理账户相同(密钥除外),公开前确认其中没有不想公开的信息
  • 原始路径含编码分隔符、; 或点段等写法的请求按最严格的鉴权范围处理且不缓存;同一域名有多条访问鉴权规则、或唯一的规则是转发鉴权时这类请求返回 400
  • 缓存规则的路径前缀与表达式 starts_with 区分大小写,需要时配合 lower()
  • 转发鉴权的结果缓存不区分请求方法与路径
  • 没有 Content-Length 的请求体由节点读完(不超过节点的全局上限)后再按网站限制判断
  • 只支持单个运营者账号,不支持多租户(演示账号为只读例外)

校验

cosign verify ghcr.io/marvinli001/edgeweir:20261013-19b356a \
  --certificate-identity https://github.com/marvinli001/edgeweir/.github/workflows/release.yml@refs/heads/master \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com