CPU 很閒,卻幾乎連不上?

一次 CDN 與防火牆互動造成誤判的排查案例 / Mr. τ・風雲網通系統

工程師最怕的,不一定是 CPU 100%。

有時候,CPU 很閒、RAM 很閒、SSD 很閒,但外面就是幾乎連不上。

這種情況,通常代表真正的問題,根本不在主機裡面。

🗓 事情是這樣開始的

這次的案例,並不是監控報警發現的。

是因為我自己要去官網新增一篇部落格文章,打開編輯器之後,發現反應比平常異常地慢——才開始往下查。

這種情況其實很常見。很多問題不是被監控抓到的,而是「剛好要用」的時候才現形。

🔄 推翻假設的過程

第一直覺當然是先看主機硬體資源——CPU、RAM、磁碟,全部正常。

接著看外網流量,也沒有異狀。

切換到防火牆日誌,才看到大量 SYN Flood 告警。

第一反應:被攻擊了?來源 IP 一看——幾乎清一色是 Cloudflare 的全球節點。

原本以為是來自任意來源的攻擊,查詢後才發現,大多是來自 Cloudflare 全球各地的節點。

那問題真的是 Cloudflare 造成的嗎?

不是。

💡 根本原因

根本原因不是 Cloudflare 出問題,而是它改變了流量型態,而防火牆不知道。

Cloudflare 的代理機制,會把大量真實用戶的連線,集中由少數 Edge IP 節點轉送進來。如果防火牆的 SYN Flood 偵測門檻,沒有配合 CDN 架構調整,就很容易把這種正常的流量模式,誤判成攻擊。

換句話說:防火牆看到的是「少數 IP 發出大量 SYN」,但這些 IP 其實是 Cloudflare 在幫你轉發真實用戶的流量——它不是攻擊者,是你的代理人。

🔍 完整排查步驟

1 確認 CPU、RAM、磁碟使用率——全部正常,排除主機本身瓶頸
2 確認外網流量——無明顯異常
3 翻防火牆日誌,發現大量 SYN Flood 告警
4 分析來源 IP,幾乎清一色是 Cloudflare Edge 節點
5 執行 netstat -an | grep SYN_RECV 驗證,大量連線卡在 SYN_RECV 狀態,且集中在 Cloudflare IP 區段

🛠 已採取的措施

開啟 Cloudflare Under Attack Mode
調整防火牆 SYN Flood 臨界值
調整 Connection TimeoutSYN Proxy 設定

📊 開啟 vs 關閉 Cloudflare Proxy 比較

有人可能會想:「那直接把 Cloudflare 切成 DNS Only,告警不就消失了?」

情境 防火牆告警 真實來源 IP 整體防護
Cloudflare Proxy(橘色雲朵) 可能較多(誤判) Cloudflare Edge IP
DNS Only(灰色雲朵) 可能較少 真實 Client IP 較低

告警消失,不代表攻擊消失。
很多時候,只是少了一層替你觀察流量的眼睛。

🧠 工程師思維

每一次故障,其實都在提醒我們一件事。

真正需要排查的,往往不是 CPU,也不是 RAM,而是整條資料流,是不是在哪一層開始「長得和你以為的不一樣」。

這次的案例,防火牆的偵測邏輯本身沒有錯;Cloudflare 的代理行為也沒有錯。問題出在:兩個系統各自正常運作,但沒有人告訴防火牆,它面對的流量模式已經因為 CDN 而改變了。

而這件事,是我去發文的時候才發現的。

有時候,最好的監控,是你自己剛好要用一下。

📌 實務小叮嚀

若要對 Cloudflare IP Range 做白名單,記得定期更新清單。Cloudflare 節點會持續擴充,舊清單放著不管,反而可能成為資安漏洞。官方 IP 清單可於 https://www.cloudflare.com/ips/ 取得。

#Cloudflare #SYN_Flood #防火牆 #DDoS防護 #CDN架構 #IT故障排除 #資安 #工程師思路

Last modified: 2026-07-02

Author

Comments

Write a Reply or Comment

Your email address will not be published.