Gately v0.6.3 发布
2026 年 11 月 2 日
性能监控(#59)
新增「性能监控」模块,后台每 5 秒采集一次主机 CPU、内存、磁盘、负载与 Gately 进程的 CPU、内存、文件描述符、协程数:
- 页面按 60 秒 / 1 小时 / 24 小时显示趋势,旁边是运行中站点的进行中请求、每秒请求数、5xx 比例、首字节延迟 P95 与后端健康状态,点站点打开站点统计;
- Web 站点开始统计首字节延迟(从收到请求到发出响应头),站点统计新增 P50 / P95 曲线,Prometheus 新增
gately_site_request_duration_seconds以及gately_host_*、gately_process_*指标,Grafana 面板同步新增; - 告警规则选择指标、比较方式与阈值,再设持续时长(1~1440 分钟),条件持续满足整段时长才触发,恢复时另发通知;5xx 比例与延迟可设最少请求数,流量太少时不判断。告警经通知中心发送,没有通知规则订阅时页面会提示。
历史数据只保存在内存中,重启后重新累计。详见 性能监控。
WAF 接入雷池(SafeLine)
WAF 实例可以把请求交给自建的雷池社区版检测引擎做语义分析,不需要在 Gately 前后再加一层反向代理:
- 填写检测引擎地址(
host:port,或unix:加snserver.sock路径),「测试连接」会发送心跳与一条示例 SQL 注入,显示往返耗时与雷池记录的事件 ID; - 雷池先于规则组执行,只用雷池时可以不选规则组;「仅检测」模式只记录不拦截;
- 拦截计入 WAF 计数、WAF 日志(含事件 ID)、访问日志、站点统计与入侵防护;
- 可设检测超时(默认 1 秒)、送检正文上限(默认 1024 KB,超出部分原样转发)以及引擎不可用时放行或返回 503(默认放行)。
详见 WAF 防火墙 · 使用雷池。
批量操作(#57)
列表的「排序」模式改为「排序与批量」,勾选后可以批量启用、停用和删除,删除前列出名称确认。Web 服务站点可以跨监听勾选,批量增删域名、替换主域名后缀(old.com → new.com 同时改写 www.old.com 与 *.old.com),以及批量修改压缩、访问日志、CORS、转发头、拒绝时断开连接与 WAF 引用;没改的选项保留各站点原值。整批先校验再一次保存,任何一项失败都不生效,只重载受影响的监听,不断开现有连接。接口为通用的 PUT <路径>-enable、POST <路径>-delete 与 POST /api/webservice/sites/batch。
STUN 自动放行防火墙端口
STUN 规则新增「自动放行防火墙」:开启后 Gately 在本机防火墙放行穿透端口(设置了 UPnP / NAT-PMP 内部端口时一并放行),规则停止或删除时移除。支持 nftables(OpenWrt fw4、firewalld)与 iptables(fw3、ufw),防火墙重载后 30 秒内自动补回,规则卡片显示放行结果或失败原因。详见 STUN 穿透。
修复泛解析 CNAME 导致的签发失败(#61)
域名有 *.example.com 指向 example.com 这类泛解析时,_acme-challenge 也会解析出 CNAME,DNS-01 验证记录被写到 @,CA 报告找不到 TXT 记录。现在 Gately 自行判断:明确设置的 CNAME 仍然跟随,便于把验证委派到其他域名;泛解析产生的 CNAME 会被识别出来,记录写在 _acme-challenge.<域名>。证书还新增「不跟随 _acme-challenge 的 CNAME」选项。详见 SSL 证书。
Web 服务日志(#62)
- 访问日志记录拦截原因(封禁、IP 名单、国家、限流、WAF),带本实例管理后台登录态的请求记录后台用户名;
- 日志页新增「隐藏被封禁来源」(默认关闭,触发封禁的请求仍可见,便于审计)与「隐藏后台自身请求」(默认开启),只影响显示,日志照常保存;
- IP 筛选支持以
!或-开头的排除项,可写地址、网段或部分地址。
其他改进
- 网络拓扑新增「筛选」:按监听、只看有问题的节点、按拦截原因筛选站点;打码新增「代号」样式,把地址整体替换成 Visitor-01、Backend-01 这类编号(#54);
- README 巡览视频直接从介绍页开始播放;
- 依赖更新:go-jose 升级到 v4.1.7、klauspost/compress 升级到 v1.18.7。
修复与加固
- WAF 站点的后端自己返回 403 时不再被当成 WAF 拦截:此前会计入拦截次数并发出
waf.blocked事件,订阅 WAF 拦截的入侵防护规则可能因此封禁正常访客; - 「隐藏后台自身请求」只认管理员会话,只读账号的登录 Cookie 不能用来给请求打上后台标记;被拦截的请求不带后台标记;
- 批量操作在去重前先限制提交数量;批量设置的 WAF 实例不存在时拒绝保存;
- 同一主机上运行多个 Gately 时,自动放行的防火墙规则按实例区分,不会互相删除。
升级提示
- Docker 拉取新镜像后重建容器,已挂载 Docker 套接字的也可以在 Gately 的 Docker 页面直接升级 Gately 自身;OpenWrt 覆盖安装新的
.apk/.ipk;飞牛在应用中心手动安装新版.fpk;其他部署方式可在「系统设置」中在线升级。