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;其他部署方式可在「系統設定」中線上升級。