簡介

你的 WordPress 網站天天被「撞」嗎?Wordfence 警報郵件堆滿你的信箱?IP 不停換,根本封鎖不完?

我告訴你一個祕密:你可能一直在封鎖錯誤的 IP 位址。

根據 Wordfence 的分析,如果你使用 Cloudflare,很多網站管理員都會遇到同一個問題:系統認不出真正的攻擊者,反而把 Cloudflare 自己的代理伺服器 IP 當成兇手,不停封鎖。結果呢?攻擊者躲在 Cloudflare 後面,繼續開槍。

這篇文章教你用 Cloudflare 的 WAF(Web Application Firewall)從最外層擋住駭客,一勞永逸地解決 WordPress 登入頁面被暴力破解的問題。而且完全免費


你的問題根源在哪裡?

常見的設定錯誤:封鎖 Cloudflare 的 IP

如果你在 Wordfence 的警報郵件看到這樣的內容:

IP 位址為 162.158.114.144 的使用者因下列原因遭鎖定,無法登入…

停!這個 IP 不是駭客的真實 IP,這是 Cloudflare 的伺服器 IP。

為什麼會這樣?

當你把網站掛在 Cloudflare 後,所有的訪客流量都會先經過 Cloudflare 的伺服器,然後才被代理到你的 WordPress 伺服器。Wordfence 預設會看到 Cloudflare 的 IP,而不是攻擊者真正的 IP。

換句話說:你在「殺錯良民」,真正的駭客還在外面逍遙法外。


▲ 圖:左邊是常見的錯誤做法,右邊是正確的識別方式


解決方案:分兩步走


▲ 圖:完整的防護流程分為三個主要步驟

第一步(必做):修正 Wordfence 的 IP 識別設定

首先,你要告訴 Wordfence 去讀取正確的 HTTP Header,這樣它才能看到真正攻擊者的 IP。

具體步驟:

  1. 登入你的 WordPress 後台
  2. 進入 Wordfence > All Options(所有選項)。
  3. 在左邊選單找到 General Wordfence Options(一般選項)。
  4. 搜尋或滾動到 How does Wordfence get IPs(Wordfence 如何獲取 IP)。
  5. 選擇:Use the Cloudflare "CF-Connecting-IP" HTTP header to get a visitor IP
  • 這是 Cloudflare 用戶的標準設定。
  1. 點擊 Save Changes(保存更改)。

完成後,Wordfence 就會開始正確識別真正的攻擊者 IP,你的後續封鎖動作才會有效。

第二步(治本方案):用 Cloudflare WAF 在最外層擋住駭客

光修正 Wordfence 還不夠,最好的防守是在最外層直接擋住。Cloudflare WAF 可以在流量還沒進到你的伺服器之前,就把惡意的登入嘗試攔下來。

為什麼這更有效?

  • 節省伺服器資源:不讓攻擊流量消耗你的伺服器頻寬和運算能力。
  • 效率極高:Bot 和自動化腳本根本過不了 Cloudflare 的驗證。
  • 用戶友善:真人使用者只要輕輕按一下驗證就能登入。

設定 Cloudflare WAF 規則

  1. 登入 Cloudflare Dashboard,選擇你的 Domain(例如 k1chan.com)。
  2. 進入 Security 模組
  • 左邊選單點擊 Security > WAF
  1. 建立新規則
  • 點擊 Create rule(或 Custom Rules)。
  1. 填寫規則名稱
  • Rule NameProtect Login
  1. 設定條件(非常重要):
  • 第一個條件:
    • FieldURI Path
    • Operatorcontains
    • Value/wp-login.php
  • 點擊 OR,新增第二個條件(保護 XML-RPC,這是駭客最愛的攻擊點):
    • FieldURI Path
    • Operatorcontains
    • Value/xmlrpc.php
  1. 選擇防護動作
  • Then take action:選擇 Managed Challenge
  • 這會顯示一個簡單的「驗證你是人類」的小方塊給訪客。
  1. 部署規則
  • 點擊 Deploy

結果:任何人嘗試訪問 /wp-login.php/xmlrpc.php 時,Cloudflare 會先彈出一個人機驗證畫面。Bot 和自動化攻擊腳本無法通過,而真人使用者只需按一下就能進去。


▲ 圖:Managed Challenge 如何區分真人使用者和自動化攻擊


進階設定:如果你只在香港管理網站

如果你知道自己只會從香港的 IP 進行網站管理,可以進一步限制規則:

  1. 回到 Cloudflare WAF 規則編輯。
  2. 在你剛才設定的規則中,點擊 Edit
  3. 新增一個 AND 條件:
  • FieldCountry
  • Operatordoes not equal
  • ValueHong Kong
  • ActionBlock

效果:除了香港以外的所有 IP 都會被直接封鎖,根本連 Turnstile 驗證都見不到。這種做法極端有效,但記得只有在你確保自己不會從香港以外地方登入時才使用。


加強防護:隱藏你的 WordPress 登入路徑

即使設定了 WAF,駭客仍然知道 WordPress 的預設登入頁面在 /wp-login.php。你可以用一個簡單的外掛來改變它:

安裝 WPS Hide Login 外掛:

  1. 在 WordPress 後台進入 Plugins > Add New
  2. 搜尋 WPS Hide Login
  3. 安裝並啟用。
  4. 進入外掛設定,將登入路徑改成其他名稱(例如 /k1-manage 或任何你想要的路徑)。

效果:這會讓自動化掃描工具和不知情的攻擊者直接失效,因為他們掃不到你的登入頁面。根據統計,這一步能擋掉超過 90% 的隨機攻擊


Cloudflare 免費版包含什麼?

很多人擔心 WAF 需要付費。實際上不用:

  • Cloudflare 免費版包含 5 條自訂防火牆規則
  • 我教你設定的 Protect Login 規則只用了 1 條,你還有 4 條剩下來。
  • Managed Challenge 驗證功能完全免費

只有當你需要超過 20 條規則,或者想啟用 Cloudflare 的「託管規則集」(即 Cloudflare 幫你寫好的幾千條安全規則)時,才需要升級到付費版。


完整工作流程總結

步驟 動作 效果 第一步 修正 Wordfence IP 設定(選擇 CF-Connecting-IP) Wordfence 開始正確識別攻擊者真實 IP 第二步 在 Cloudflare WAF 設定 Managed Challenge 駭客進來時被要求驗證,Bot 全被擋 第三步(可選) 安裝 WPS Hide Login 隱藏登入路徑 90% 的隨機掃描攻擊直接失效 進階(可選) 設定地理位置限制 非香港 IP 直接封鎖


驗證設定是否成功

  1. 開啟一個 Incognito Mode(無痕視窗)。
  2. 訪問 yourdomain.com/wp-adminyourdomain.com/wp-login.php
  3. 如果看到 Cloudflare 的驗證畫面(通常是一個帶勾選框的小方塊),說明設定成功了
  4. 勾選方塊通過驗證後,才會進入 WordPress 登入頁面。

常見問題解答

Q:設定後我自己登入會不會也被擋?

A:會的,但只是要驗證一次。Cloudflare 會記住你的瀏覽器指紋,之後通常不會再問。如果你經常從不同設備登入,可以考慮用 WPS Hide Login 改變登入路徑,然後只在 WAF 規則裡保護新的路徑。

Q:Managed Challenge 和 CAPTCHA 有什麼分別?

A:Managed Challenge 是 Cloudflare 的「聰明驗證」,通常只需要點一個格子。傳統 CAPTCHA 需要辨認圖片或解數學題,用戶體驗較差。Managed Challenge 的通過率更高,而且對真人和 Bot 的辨別能力更強。

Q:可以只針對特定國家設定 WAF 嗎?

A:可以。在 WAF 規則中加上 Country 條件,你可以只保護特定國家的流量,或者直接擋住特定國家。例如只擋除了香港以外的所有登入嘗試。

Q:Wordfence 免費版夠用嗎?

A:配合 Cloudflare WAF 使用的話,Wordfence 免費版完全夠用。Wordfence 在你的伺服器層做防守,Cloudflare 在網路邊緣(Edge)做防守,兩層防禦足以保護絕大多數的 WordPress 網站。

Q:設定完之後還需要做什麼?

A:

  • 定期檢查 Wordfence 的警報郵件,確保沒有漏掉的威脅。
  • 保持 WordPress、主題、外掛更新到最新版本。
  • 使用強密碼並啟用二因素認證(2FA)。
  • 定期備份你的網站。

成果期待

設定完以上步驟後,你應該會看到:

Wordfence 警報大幅減少(因為 Bot 連門都進不來)
伺服器負載下降(Cloudflare 幫你擋掉了 99% 的垃圾流量)
登入嘗試失敗率接近 100%(來自 Bot 的攻擊)
真正的管理員登入體驗改善(只需驗證一次,之後暢通無阻)


總結

不需要花錢,不需要複雜的設定,只要三個步驟:

  1. 修正 Wordfence 的 IP 識別。
  2. 在 Cloudflare 設定 WAF Managed Challenge。
  3. (可選)隱藏你的 WordPress 登入路徑。

從現在開始,你的 WordPress 網站就受到多層防守的保護了!


延伸閱讀


有問題?在下方留言區提問,我會盡快回覆!


最後更新:2026 年 2 月 19 日
適用版本:WordPress 6.x + Wordfence 最新版 + Cloudflare 所有版本(包括免費版)

By k1chan

留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料