🔐 如何檢查及解除 Fail2ban 封鎖的 IP(實戰步驟)

在管理伺服器時,偶爾會遇到某個 IP 被 Fail2ban 封鎖的情況。
這篇文章介紹如何:

  • ✅ 查出是否被封
  • ✅ 找出是哪個 jail 封鎖
  • ✅ 正確解除封鎖
  • ✅ 驗證是否完全清除

以下示例 IP 使用:

X.X.X.X

請替換為實際需要查詢的 IP。


✅ 第一步:查看 Fail2ban log

先從日誌確認是否曾被封鎖:

grep X.X.X.X /var/log/fail2ban.log

如果看到類似:

[sshd] Ban X.X.X.X

代表該 IP 曾被某個 jail 封鎖。


✅ 第二步:確認目前是否仍被封鎖

使用 fail2ban 內建查詢指令:

fail2ban-client banned X.X.X.X

如果該 IP 仍在封鎖名單中,會顯示對應 jail 名稱。

如果沒有任何輸出,代表目前沒有被 Fail2ban 封鎖。


✅ 第三步:解除封鎖(Unban)

若確認需要解除封鎖:

fail2ban-client unban X.X.X.X

這條指令會:

  • 從所有 jail 中移除該 IP
  • 同時更新防火牆規則

✅ 第四步:確認 firewall 是否已清除

Fail2ban 會透過 iptables 或 nftables 進行封鎖。

如果系統使用 iptables,可檢查:

iptables -L -n | grep X.X.X.X

若沒有任何輸出,表示防火牆規則已移除。


✅ 建議完整排查流程

grep X.X.X.X /var/log/fail2ban.log
fail2ban-client banned X.X.X.X
fail2ban-client unban X.X.X.X
fail2ban-client banned X.X.X.X
iptables -L -n | grep X.X.X.X

✅ 補充說明

  • Fail2ban 只負責管理封鎖名單
  • 真正丟棄封包的是防火牆規則
  • 若 unban 後仍無法連線,應檢查是否有其他防火牆或 CDN 層封鎖

✅ 結語

正確的排查順序應為:

  1. 查 log
  2. 查 jail 狀態
  3. 執行 unban
  4. 驗證防火牆

避免直接重啟服務或修改設定,
精準排錯才是穩定運行的關鍵。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *