Gately v0.6.5.2 发布
2026 年 11 月 8 日
群晖 DSM 等内核没有 nf_tables 的系统
群晖 DSM 的内核没有启用 nf_tables,此前入侵防护写入防火墙规则会每分钟失败重试一次,自动放行防火墙也无法生效。这一版:
- 入侵防护在内核没有 nf_tables、或系统没有 nft 命令时改用 iptables(legacy)与 ipset。规则写在 mangle 表中 Gately 自己的链里,先于群晖防火墙和 Docker 的规则处理;手动封禁、永久封禁、诱饵端口与端口扫描检测都在内核层生效,剩余时间超过约 24 天的封禁在到期前自动续写;
- 端口转发、Web 服务、协议分流的「自动放行防火墙」使用 Gately 专用的 iptables 链,跳转放在 INPUT 第一位,群晖防火墙重新加载后 30 秒内恢复;Docker 部署与直接安装都适用;
- Docker 镜像内置 iptables-legacy 与 ipset,nftables 可用的系统行为不变;
- 两者都不可用时,入侵防护显示「不可用」并说明原因,不再定时重试。
Docker 部署需要 host 网络与 cap_add: NET_ADMIN。详见 入侵防护。
Web 站点首段通配
站点域名的第一段可以写一个 *,例如 api-*.example.com 匹配 api-1.example.com、api-test.example.com,不匹配更深一级的子域名。匹配顺序为精确域名、通配、*:首段通配优先于 *.example.com,长度相同的通配以列表中靠前的站点为准。重定向中可以用 {1} 取到 * 匹配的部分;证书仍按 *.example.com 申请。详见 Web 服务。
转发认证:跟随 401 跳转
转发认证新增「跟随 401 跳转」开关,适用于 Casdoor 等在 401 响应的 Location 中给出动态登录地址的认证服务。开启且未填写「登录跳转」时,Gately 把访客 302 跳转到该地址,并传递 Set-Cookie 与 Cache-Control;相对地址、javascript: 等写法保持原样返回 401。开关默认关闭。
问题修复
- 后端在读完请求体之前就返回响应时(例如在局域网用 Home Assistant iOS 应用登录),HTTP/2 请求会导致 Gately 进程退出;
- 带末尾点的域名(如
example.com.)与不带点的写法匹配同一个站点; - 诊断包按完整的词替换主机名,不区分大小写:主机名较短(如 gate)时不再把 gately 改成
<hostname>ly,nas-backup这类复合名中的主机名照常替换; - 网络拓扑的打码覆盖首段通配域名;复制站点的分享链接时使用第一个具体域名,跳过所有通配写法。