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 在幫你轉發真實用戶的流量——它不是攻擊者,是你的代理人。
🔍 完整排查步驟
netstat -an | grep SYN_RECV 驗證,大量連線卡在 SYN_RECV 狀態,且集中在 Cloudflare IP 區段
🛠 已採取的措施
📊 開啟 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故障排除 #資安 #工程師思路
Comments