Repository navigation
Releases: marvinli001/edgeweir
Release list
Edgeweir 20261029-8dccef0
控制台镜像 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-node1.6.1(错误页与挑战页的新外观);旧节点照常工作;protov1.6.0,不变 - 没有新的数据库迁移
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261029-8dccef0 - 节点:在控制台的节点升级里升到
1.6.1(可选)
Edgeweir 20261029-0c26898
控制台镜像 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-node1.6.2;旧节点照常工作,只是不出现在地球上 - proto
v1.7.0(心跳新增locate_address与location) - 数据库迁移
0081_node_location(node.location),启动时自动执行
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261029-0c26898 - 节点:在控制台的节点升级里升到
1.6.2,地球上才会出现该节点
Edgeweir 20261027-7deea31
控制台镜像 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-node1.6.0;protov1.6.0,不变 - 没有新的数据库迁移
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261027-7deea31 - 节点不需要升级
Edgeweir 20261023-ba5683d
控制台镜像 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-node1.6.0;protov1.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配合旧控制台也能工作,新功能不生效
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261023-ba5683d - 节点:「节点升级」升级到
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.comEdgeweir 20261021-2dfa7c2
控制台镜像 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-node1.5.0;protov1.5.0 - 数据库迁移
0074_node_clock_dns_failures,启动时自动执行 - 旧节点(
1.0.x–1.4.0)继续工作,只是不上报时钟偏差,节点详情不显示这一项,也不会触发时钟告警。可直接经「节点升级」升级 - 节点
1.5.0配合旧控制台也能工作,只是测不到偏差,diagnose跳过时钟一项
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261021-2dfa7c2 - 节点:「节点升级」升级到
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.comEdgeweir 20261020-a4db6e1
控制台镜像 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-node1.3.1;protov1.3.0(未变) - 数据库迁移
0072_site_auto_mitigation,启动时自动执行 - 旧节点(
1.0.x–1.3.0)继续工作;自动缓解只用节点已上报的 CC 级别,不需要新节点
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261020-a4db6e1 - 节点:「节点升级」升级到
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.comEdgeweir 20261020-5b9cf50
控制台镜像 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-node1.4.0;protov1.4.0 - 数据库迁移
0073_origin_stats,启动时自动执行 - 旧节点(
1.0.x–1.3.1)继续工作,只是不上报回源计数:集群中有旧节点时卡片显示一行提示,数字只含新节点。可直接经「节点升级」升级 - 节点
1.4.0配合旧控制台也能工作
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261020-5b9cf50 - 节点:「节点升级」升级到
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.comEdgeweir 20261015-21b83dc
控制台镜像 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-node1.3.0;protov1.3.0 - 数据库迁移
0069_site_usage_guard、0070_node_logs、0071_origin_protection,启动时自动执行 - 旧节点(
1.0.x–1.2.0)继续工作:节点日志页签显示「节点版本过低」;集群中有网站开启回源客户端证书或信任 Origin CA 后,旧节点显示「需要升级」并保留原配置。可直接经「节点升级」升级 - 节点
1.3.0配合旧控制台也能工作
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261015-21b83dc - 节点:「节点升级」升级到
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.comEdgeweir 20261013-7977f2f
控制台镜像 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-node1.2.0;protov1.2.0 - 数据库迁移
0068_node_channel_status,启动时自动执行 - 旧节点(
1.0.x、1.1.0)继续工作,忽略新增字段,按注册时的地址连接;界面按它们最近一次连接的 TLS 服务器名判断在用的地址。可直接经「节点升级」升级 - 节点
1.2.0配合旧控制台也能工作:不会收到新地址,set-server照常可用
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261013-7977f2f - 节点:「节点升级」升级到
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.comEdgeweir 20261013-19b356a
控制台镜像 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-node1.1.0 - 数据库迁移
0065_cache_rule_respect_default、0066_auth_identity_headers、0067_node_certificate_failures,启动时自动执行 - 旧节点(
1.0.x)继续工作,忽略新增字段;上面标注节点1.1.0的修复要节点升级后生效。可直接经「节点升级」升级 - 节点
1.1.0配合旧控制台也能工作:照常隔离无法加载的证书(控制台不显示),只删除启用规则的身份头
升级
- 备份数据库(docs/deploy/backup.md)
- 控制台:
./deploy.sh update或把镜像改为20261013-19b356a - 节点:「节点升级」升级到
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