Gately v0.5.6 發布
2026 年 10 月 22 日
這一版新增「入侵防護」模組(#10),把 1Panel 裡常用的 fail2ban 能力整合進 Gately:找出暴力破解與連接埠掃描的來源 IP,自動封鎖,並在系統防火牆中丟棄它的流量。
下載 v0.5.6 · GitHub Release · 模組文件
入侵防護
- 日誌規則:讀取日誌檔案(自動跟隨輪替)、systemd 日誌、命令輸出(如 OpenWrt 的
logread -f)或 Docker 容器日誌,用正規表示式與<HOST>找出失敗記錄,同一 IP 在統計視窗內達到次數即封鎖。內建 SSH、Dropbear、Nginx、Vaultwarden、Home Assistant、Proxmox VE 等範本,編輯時可以貼上日誌樣例直接測試; - Gately 事件:管理後台登入失敗、WAF 攔截也能作為規則來源,不用寫正規表示式;
- 誘餌連接埠:在本機沒有使用的連接埠上設下誘餌,任何來源一連線就封鎖,正在監聽的連接埠自動排除;
- 連接埠掃描偵測:同一來源每分鐘連線本機未開放連接埠超過閾值即封鎖;
- 統一封鎖清單:手動封鎖(支援 CIDR 網段與永久封鎖)、Web 服務驗證失敗的自動封鎖都在這裡管理,重新啟動後保留;同一位址再次被封鎖時時長加倍;
- 白名單:預設忽略內網、迴環、100.64.0.0/10(Tailscale)與本機所在的 IPv6 /64 網段;
- 系統防火牆:封鎖寫入 nftables 中獨立的
inet gately表,在核心層丟棄,發往 Docker 容器與內網裝置的轉發流量同樣被攔截;本機主動存取被封位址(如 DNS)的回應不受影響。停止 Gately 時規則自動移除。
連接埠轉發、Web 服務、STUN、WebDAV、FTP 與管理後台也會直接拒絕被封鎖的位址。封鎖會產生「入侵防護:IP 已被封鎖」事件,可在通知中心訂閱。
支援範圍
- Linux 以 root 執行、飛牛 fnOS 安裝包、OpenWrt 22.03 以上:全部功能可用;
- Docker:需要 host 網路並授予
NET_ADMIN(cap_add: [NET_ADMIN]),映像已內建 nftables; - Windows、macOS、FreeBSD,以及沒有 nftables 或權限的 Linux:封鎖只對 Gately 自身的服務生效,誘餌連接埠改由 Gately 監聽,連接埠掃描偵測無法使用。頁面頂部會顯示原因與處理方式。
其他改進
- Docker 設定中顯示 Docker 守護行程自己的映像加速位址(
daemon.json中的registry-mirrors)(#11); - 修復開啟定時備份時報
unknown field "hasPassword"的問題(#9); - 官網新增贊助頁。
升級提示
- 升級方式:Linux 二進位在「關於」頁直接升級;Docker 拉取新映像後重建容器;飛牛在應用中心安裝新版
.fpk;OpenWrt 安裝新版.ipk/.apk。 - Docker 部署要啟用防火牆層的封鎖,請在 compose 中加入
cap_add: [NET_ADMIN]後重建容器;不加時其餘功能照常使用。 - 以 root 執行的 Linux 實例升級後會自動建立
inet gately表;沒有封鎖時只有空規則,不影響現有流量。不需要時可在「入侵防護 → 設定」中關閉同步,或在「設定 → 功能模組」中關閉整個模組。 - Web 服務驗證失敗產生的封鎖併入統一封鎖清單:開啟防火牆同步後對整台主機生效;預設開啟的「忽略內網位址」使內網位址不再被這類自動封鎖。
- 站點經 CDN 回源、以請求標頭傳遞真實 IP 時,WAF 與驗證失敗封鎖拿到的是 CDN 節點位址,這類站點不要啟用相應規則。
- Docker 部署請使用 v0.5.6.1,它修復了 v0.5.6 映像讓主機上舊版 nft 當機的問題。