Skip to content

Gately v0.6.5.5 发布 ​

2026 年 11 月 11 日

下载 v0.6.5.5 · GitHub Release

端口敲门(#80) ​

新增「端口敲门」模块(位于「网络」分组),提供与 fwknop 客户端兼容的单包授权(SPA):受保护的端口平时对外不可连接,客户端先发送一个加密、带认证的敲门包,认证通过后只为这个来源地址在限定时间内放行。适合保护 SSH 直连,scp、IDE 远程开发等 Web 终端覆盖不到的场景也能安全地从外网连接。

  • 安全:报文用 AES 加密、HMAC 认证,先校验 HMAC 再解密;每个报文只能使用一次(防重放),时间戳超出有效期(默认 120 秒)即拒绝;可限定用户名、可要求报文写明放行地址;
  • 防火墙拦截:默认在 UDP 62201 接收敲门包;规则可把受保护端口写入系统防火墙(nftables,内核没有 nf_tables 时用 iptables + ipset),敲门成功的地址在放行时长(默认 30 秒)内可以建立新连接,已建立的连接不受影响;
  • 防止锁在外面:默认开启「内网免敲门」,私有地址与本机网卡所在的公网 IPv6 网段无需敲门(运营商级 NAT 地址 100.64.0.0/10 不在其中),并可追加免敲门白名单;
  • Gately 入口按敲门放行:端口转发、协议分流、STUN 内置转发的 IP 访问控制可以选择“需要敲门”,由 Gately 自己判断,不需要防火墙权限,Windows、macOS 与没有 NET_ADMIN 的容器也能用;
  • 只开一个端口:协议分流可以按路由要求敲门,并新增「端口敲门」路由(协议 spa),经 TCP 接收敲门包(fwknop -P tcp),同一个端口既接收敲门,又按结果放行 SSH 等路由;
  • 与入侵防护联动:被拒绝的敲门可作为入侵防护的事件来源,内置「端口敲门失败」模板默认 10 分钟内 5 次即封禁 1 天;经 UDP 发来、未通过 HMAC 认证的包来源可以伪造,只计数、不计入;敲门成功与被拒绝可在通知中心订阅;
  • 客户端配置:规则卡片上的「客户端」生成 fwknop 命令行与 ~/.fwknoprc 配置段,密钥格式与 fwknop -k 相同。

详见 端口敲门。

网络唤醒:客户端远程关机 ​

远程关机新增「客户端」方式:在 Windows、Linux、macOS、OpenWrt 上安装一个客户端(分别安装为计划任务,或 systemd / OpenRC、launchd、procd 服务),由客户端主动长轮询 Gately 取指令,设备不必开放任何端口,Gately 也不保存设备的登录凭据。

  • 客户端只执行关机、重启、睡眠三种固定操作,接口 POST /api/wol/devices/{key}/shutdown 可用 {"action": "reboot"}、{"action": "sleep"} 重启、睡眠;
  • 指令只在发出后 10 秒内有效:客户端先确认、Gately 回复后才执行,客户端离线时直接报错,不会排队到下次上线再执行;
  • 安装命令先校验脚本的 SHA-256,不一致时停止安装;凭据经请求体与环境变量传递,不出现在网址与命令行参数中;
  • 设备卡片显示客户端是否在线,以及上报的主机名、系统与来源地址;「重新生成」凭据后旧客户端立即断开。

另新增「HTTP 请求」方式,用于 Home Assistant、智能插座等提供 HTTP 接口的服务:填写地址、方法、请求头与请求体,响应状态码为 2xx 视为成功。详见 网络唤醒 · 客户端。

Web 服务:信任已登录用户(#81) ​

站点新增「信任已登录用户」开关:已通过本站点 Gately 认证的访客不经过 WAF,请求也不计入入侵防护的 Web 路径探测,用于 WAF 或诱饵路径规则误拦自己人的情况。信任的凭据包括网页认证会话、第三方登录允许列表中逐个列出的身份、共享用户的单点登录与验证过的基本认证;经 github:* 这类 提供方:* 通配允许的身份不被信任。封禁、IP 与国家访问控制、限流照常生效。详见 WAF。

按用户分流支持更多站点类型(#79) ​

重定向、静态文件、导航面板与固定文本站点同样可以按认证用户分流:命中规则的用户反向代理到规则的后端,其余访客照常按站点类型处理,例如管理员进入后台、其他登录用户跳转到说明页。详见 Web 服务 · 按认证用户分流。

管理员请求跳过站点 WAF ​

经挂了 WAF 的站点访问管理后台时,带本实例有效管理员会话的请求不经过站点 WAF,保存含文件路径、HTML、脚本等内容的配置不再被 CRS 规则误拦成 403。只读账号、访客与其他实例的管理后台请求仍照常检查。

问题修复 ​

  • OpenWrt 安装包(#82):OpenWrt 25.12 的 apk 在架构校验失败后仍会替换文件,固件注入时离线目录里混入 arm64 安装包会让刷机后的程序反复崩溃。现在 apk 装了其他架构的包时保留正在运行的 gately 程序,并提示「已保留原有程序」。把安装包注入固件或离线安装时,目录里只放与设备架构一致的 gately 安装包,详见 安装部署 · OpenWrt。

其他改进 ​

  • 接口文档列出免登录的模块接口(如网络唤醒客户端的轮询、确认与脚本下载),注明使用模块自己的凭据,并补充端口敲门的字段。

升级提示 ​

  • Docker 拉取新镜像后重建容器;OpenWrt 覆盖安装新的 .apk / .ipk,需要 LuCI 页面时再安装同版本的 luci-app-gately;飞牛在应用中心手动安装新版 .fpk;其他部署方式可在「系统设置」中在线升级。
  • 端口敲门的防火墙拦截需要 root 或 CAP_NET_ADMIN;Docker 部署需使用 host 网络并添加 cap_add: NET_ADMIN。

以 Apache-2.0 许可证开源发布。