Skip to content

Gately v0.6.2 发布 ​

2026 年 10 月 31 日

下载 v0.6.2 · GitHub Release

协议分流 ​

新增「协议分流」模块,侧边栏位于「端口转发」旁。它按客户端最先发送的数据识别协议,把同一个端口上的连接送到不同的后端,全程不解密:

  • TLS 按 SNI 域名与 ALPN 分流,HTTP 按 Host 分流,Minecraft 按握手包中的服务器地址分流;
  • SSH、RDP、SOCKS4/5、OpenVPN(TCP,含 tls-auth 与 tls-crypt-v2)、XMPP、MQTT、PostgreSQL、RTSP、SIP、Redis、AMQP、SMB、Git、IRC、ADB、BitTorrent 各自一条路由,HTTP、RTSP、SIP 按请求行末尾的版本号区分;
  • 「等待超时」路由接收连上后不发数据的客户端(VNC、MySQL 等服务端先发言的协议),识别超时可精确到 0.1 秒;
  • 无法识别或未命中的连接交给默认目标;每条路由可单独向后端发送 PROXY 协议,列表显示各路由的命中次数。

各协议的识别依据、域名与 ALPN 的匹配顺序,以及替换 haproxy SNI 分流与 sslh 的示例见 协议分流。

列表分组与排序(#48) ​

动态域名、端口转发、协议分流、Web 服务站点、STUN、SSL 证书、WAF、入侵防护、frp、Cloudflare 隧道、File Browser、存储挂载、网络唤醒、计划任务、通知、Web 终端连接与 API 令牌等列表统一支持:

  • 搜索、拖动排序(手机上用上下箭头)、多选后批量移动到分组;
  • 整组移动、原地重命名与合并分组,折叠状态会被记住;
  • 动态域名任务内的解析记录也可以分组与排序。

调整分组与顺序不会重启正在运行的实例。详见 列表分组与排序。

动态域名引用 STUN 地址(#47) ​

记录值与 Webhook 中可以使用 {STUN_规则名_PORT}、{STUN_规则名_IP}、{STUN_规则名_ADDR}。STUN 规则的公网地址变化后,引用它的任务立即同步;只在 Webhook 中引用时也会调用一次 Webhook。规则未启用或还没有穿透成功时,该记录本轮跳过并在状态中说明原因。详见 动态域名 · 记录值变量。

STUN 适配多层 NAT ​

开启 UPnP / NAT-PMP 的规则会先向网关查询它自己的外网地址。与 STUN 观察到的公网地址不同(例如路由器外层还有运营商 NAT)时,公网端口属于外层 NAT,只保留通道端口的映射,不再在路由器上追加映射,公网端口不会在每次复查时变化。STUN 文档补充了全锥型与受限型运营商 NAT、多层 NAT 下的 UPnP、固定本地端口与放行主机防火墙的说明。

安全加固 ​

  • 仍在使用默认密码时,账号、两步验证、通行密钥、附加账号、API 令牌、系统设置与 Web 终端安全设置只能查看,从备份恢复与回滚这些配置的历史版本同样被拒绝,必须先改掉默认密码;
  • 只读账号与只读 API 令牌读取配置与日志时,站点共享用户密码、分享链接令牌、请求头的值、密钥,以及地址中的密码、查询参数与路径里的令牌都会打码;
  • 浏览 files/ 与 sftp/ 下的目录需要写权限;
  • 只靠密码的登录不再清零失败计数,两步验证码无法被暴力尝试;
  • 经可信代理访问时,X-Forwarded-For 与 X-Real-IP 不一致的处理更严格,伪造内网地址无法绕过「仅内网访问」;
  • 创建 API 令牌时,写权限可以执行服务器命令的模块(动态域名、计划任务、入侵防护、STUN、SSL、Web 终端、Docker、frp、File Browser、Cloudflare 隧道)标为「可执行命令」并在授予时提醒;
  • UPnP 网关返回的设备描述与控制地址必须属于应答的设备。

其他改进 ​

  • 动态域名任务卡片上的每条记录可直接删除(服务商处的解析记录保留);
  • 手机上的 Web 终端按键栏改为单行横向滚动,默认随软键盘出现和收起;
  • 修复 Android Chrome 与 iOS 添加到主屏幕时图标透明的问题,管理界面与官网提供 Web App Manifest;
  • 官网首页与 README 改版。

修复 ​

  • 入侵防护规则命中过之后,再次编辑保存时报「unknown field lastSeen」;
  • 多张证书覆盖同一域名时,改用到期时间最晚的一张,证书列表的排序与分组不再影响实际使用的证书;
  • 协议分流识别期间 ClientHello 只收到一部分就超时时,不再把补零的数据转发给后端;停止或修改规则时立即关闭仍在识别的连接;
  • Webhook 正文是 JSON 时其中的 STUN 变量未被替换。

升级提示 ​

  • 升级后首次启动时,端口转发中的 SNI 分流规则自动移到协议分流,key、名称、启用状态、分组与路由保持不变;端口转发被关闭的,协议分流也关闭;拥有端口转发权限的 API 令牌同时获得协议分流的同级权限。
  • 通过接口管理分流规则的脚本请改用 /api/protoroute/rules,路由字段由 sniRoutes 改为 routes;/api/portforward/rules 不再接受 mode 字段。这些规则的监控指标改为 gately_protoroute_*。
  • Docker 拉取新镜像后重建容器;OpenWrt 覆盖安装新的 .apk / .ipk;飞牛在应用中心手动安装新版 .fpk;其他部署方式可在「系统设置」中在线升级。

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