打開信箱看到主機商寄來「本月頻寬流量已達上限」的通知,或更糟的是網站直接被暫停、跳出 509 Bandwidth Limit Exceeded,多數站長的第一反應是慌張加購流量或升級方案。但加錢買流量只是把帳單往後延,沒有先找出爆量的真正來源,下個月十之八九還會再爆一次。
主機頻寬超量真正該做的,是按「先止血、再診斷、後降載」的順序處理:先讓網站恢復上線,接著從主機後台的流量報表揪出吃掉頻寬的元兇,最後針對來源做結構性的降載。這篇會帶你把這套流程跑完一遍,並把容易被忽略的爬蟲、盜連、大檔這幾個常見破口講清楚。
主機頻寬超量到底是什麼意思
頻寬超量指的是網站在計費週期內傳出與傳入的資料總量,超過了主機方案核可的額度。這裡要先把兩個常被混用的詞分開:流量(Traffic)是「這個月累積用了多少資料」,通常月初歸零重新累計;頻寬(Bandwidth)嚴格說是「單位時間內能同時傳多少」,也就是通道的寬度。
麻煩的是,台灣多數虛擬主機商在後台與帳單上,習慣把「每月流量額度」直接標成「Bandwidth」。所以你收到的「頻寬超量」通知,九成是指「這個月的累積傳輸量用完了」,而不是瞬間速率不夠。釐清這點很重要,因為兩者的處理方向完全不同:累積量用完要找出誰在吃資料,瞬間速率不夠則要考慮升級頻寬或開 CDN 分流。
以 cPanel 為例,這個混淆會更明顯。統計區(Statistics)裡的 Bandwidth,實際代表的是「本期已使用的累積流量」;計量區(Metrics)裡的 Bandwidth 報表,呈現的才比較接近真正的瞬間頻寬走勢。看數字前先確認你看的是哪一個,不然會誤判狀況。
一個實用的換算可以幫你建立量感:若主機是 1 Mbps 的頻寬滿載跑整個月,三十天大約可以傳輸 330 GB。反過來說,如果你的方案每月給 100 GB 流量,那大概等於長期平均 0.3 Mbps 的傳輸水準,一旦遇到活動或被爬蟲掃,很容易在月中就用罄。
超量後網站被停,第一時間怎麼讓它先上線
網站因超量被停時,先求恢復上線、再追究原因,順序不要顛倒。被停的當下繼續找元兇沒有意義,訪客和搜尋引擎看到的都是錯誤頁。先讓站台能服務,才有空間慢慢診斷。
短期止血通常有三條路,依手邊資源擇一或併用:
- 向主機商加購當期流量:多數主機商提供臨時加購或調高當月額度,這是最快讓站台復原的方式。把它當成爭取診斷時間的手段,不是解決方案。
- 暫時下架最耗流量的內容:如果你已經知道是某支大型影片、某個下載檔或某張高解析主圖在吃量,先把它換成低解析版本或暫時移除,往往能立刻把曲線壓下來。
- 在前端掛上 CDN 接手靜態資源:把圖片、CSS、JavaScript 這類靜態檔交給 CDN 供應,主機端的傳出量會大幅下降。免費等級的 Cloudflare 設定一次就能長期受用,是止血兼長期降載的雙用手段。
如果超量是被攻擊或惡意流量灌爆造成的,加購流量等於替攻擊者買單。這種情況優先把站台切到 CDN 並開啟防護模式(例如 Cloudflare 的 Under Attack 模式),讓可疑連線在到達你的主機前就被擋下,再回頭處理帳務。
止血做完,務必進入下一步的診斷,否則加購的額度只是延後爆量的時間點。
怎麼從主機後台揪出吃掉頻寬的元兇
診斷爆量來源最可靠的工具,是主機內建的伺服器日誌分析,而不是 Google Analytics。GA 統計的是「人」的瀏覽行為,靠的是網頁裡的追蹤碼;但爬蟲、盜連、檔案直接下載這些最會吃頻寬的行為,往往不會觸發追蹤碼,GA 完全看不到。要看「主機實際傳出了多少資料、傳給了誰」,得用 cPanel 裡的 AWStats 或對應的原始日誌。
進到 AWStats 後,鎖定下面幾個報表,它們能把爆量來源一層層縮小:
- Bandwidth 月/日報表:先看曲線。是某幾天突然暴衝,還是整月平均偏高?暴衝多半對應活動、被掃或被攻擊;長期偏高則通常是內容本身太重或被持續盜連。
- Pages-URL(熱門網址):哪幾個網址被存取最多次。若集中在少數頁面,元兇通常就在那幾頁的內容裡。
- File type 與 Downloads(檔案類型與下載):看是哪種檔案在被大量傳輸。如果影片、PDF、壓縮檔的占比異常高,代表問題出在大型靜態檔,而不是一般網頁。
- Robots/Spiders(機器人與爬蟲):這欄常被忽略,卻是揪爬蟲的關鍵。如果機器人造訪占了可觀比例,就要懷疑是某些爬蟲在狂掃。
- Hosts(來源 IP):看流量是不是集中在少數幾個 IP。正常人流會分散在大量 IP;若單一 IP 吃掉一大塊頻寬,多半是爬蟲、盜連程式或攻擊。
把這幾張報表交叉看,就能判斷爆量屬於哪一類。要提醒的是,AWStats 的數字僅供參考,它不計入 FTP 與 Email 等非 HTTP 流量,所以它的總量會比帳單上的頻寬用量略低。如果 AWStats 看起來都正常、帳單卻爆量,就要回頭查信箱與備份這類非網頁流量。
爆量來源有哪幾種,各自怎麼判斷
頻寬爆量的來源大致分成六類,先對號入座再對症下藥。下面這張表把判斷訊號與處理方向整理在一起:
| 爆量來源 | 後台訊號 | 處理方向 |
|---|---|---|
| 自家大型靜態檔 | File type 中影片/PDF/圖片占比高、Pages-URL 集中在含大檔的頁面 | 壓縮、轉檔、搬到外部儲存、上 CDN |
| 惡意或失控爬蟲 | Robots/Spiders 占比高、單一可疑 UA 反覆造訪 | robots.txt 限制、封鎖 UA 或 IP |
| 圖片被盜連 | Hosts 出現陌生來源網域、圖片流量遠高於頁面瀏覽 | 開啟防盜連(hotlink protection) |
| 流量攻擊 | 流量某時段瞬間暴衝、集中少數 IP、站台同時變慢 | 切 CDN 並開防護模式、通報主機商 |
| 網站被植入惡意程式 | 出現你沒上傳的檔案或異常外連、流量莫名升高 | 掃毒、清除後門、更新外掛與密碼 |
| 活動或曝光帶來的真實人流 | 流量隨檔期上升、來源 IP 分散、轉換同步成長 | 屬正常成長,升級方案或長期上 CDN |
這六類裡,前四類最容易被誤判成「就是流量大了該升級」。其中最該優先排查的是爬蟲與盜連,因為它們吃掉的全是無效流量,處理掉之後省下的額度立竿見影。
判斷的核心邏輯是看「流量有沒有對應到真實價值」。如果頻寬一直漲、訂單與詢問卻沒同步成長,那這些量很可能是爬蟲、盜連或攻擊貢獻的,升級方案只是用更貴的價格繼續餵養它們。反過來,若流量成長確實伴隨真實互動與成交,那才是健康的成長訊號,這時擴充才合理。
爬蟲與盜連這兩個隱形破口,怎麼擋下來
爬蟲和盜連是最常被忽略、卻最值得先處理的兩種無效流量,因為擋掉它們幾乎沒有副作用,省下的全是純損耗。
先談爬蟲。網路上的機器人程式品質參差,有些寫得不好的爬蟲查完資料不釋放連線,或用極高頻率反覆抓取,主機很容易不堪負荷。要擋它,第一步是在 robots.txt 設定合理的抓取規則與抓取延遲,請守規矩的爬蟲降頻;對於那些無視 robots.txt 的惡意爬蟲,就得從伺服器端直接封鎖它的 User-Agent 或來源 IP。如果你用 Cloudflare 這類服務,也可以直接套用它內建的機器人管理規則,在流量到你主機前就過濾掉。
要留意一點:別把搜尋引擎的正規爬蟲(Googlebot、Bingbot)也一起擋掉,那會傷到 SEO。封鎖前先從 AWStats 的 Robots/Spiders 報表確認 UA 名稱,分清楚是搜尋引擎還是來路不明的抓取程式。
再談盜連。盜連(hotlinking)是別人的網站直接把 <img> 指向你主機上的圖片,於是每次他們的訪客載入那張圖,吃的都是你的頻寬、伺服器卻拿不到任何流量回報。判斷訊號很明顯:AWStats 的 Hosts 或 referer 出現你不認識的網域、而且圖片流量遠遠高於正常的頁面瀏覽量。
防盜連的做法是在主機開啟 hotlink protection。cPanel 內建這個功能,設定後只允許你自己的網域引用圖片,外部網站來盜連時會被擋下或改顯示一張替代圖。WordPress 上也有外掛能做到同樣的事。這一招對圖片量大的網站特別有感,常常一開就把莫名其妙的頻寬消耗砍掉一大塊。
長期降載的結構性做法有哪些
把無效流量擋掉之後,剩下的就是針對真實內容做結構性降載,讓同樣的訪客數消耗更少頻寬。這部分是一勞永逸的投資,方向有四個。
第一、用 CDN 把靜態資源從主機卸載。 CDN 會把圖片、CSS、JavaScript 這些靜態檔快取在它分散各地的節點上,訪客直接從最近的節點取得,主機只需要處理動態請求。光是這一步,主機端的傳出流量往往就能降掉一大半。免費的 Cloudflare 對多數中小網站已經夠用,設定方式是把網域的 DNS 交給它代管,再把相關記錄的 Proxy 狀態打開即可。
第二、把圖片與大型檔案優化或外移。 圖片幾乎是 WordPress 網站頻寬的最大宗。上傳前先把解析度裁到實際顯示尺寸、清掉 EXIF 等中繼資料、優先用壓縮率好的格式(一般照片用 JPG、視情況評估 WebP),單張就能省下可觀體積。影片更是頻寬殺手,建議別直接放主機,改上傳到 YouTube 或 Vimeo 用嵌入的方式呈現,把傳輸成本轉嫁出去。下載用的大型檔案則可以考慮搬到物件儲存服務,主機只負責邏輯處理。
第三、開啟快取與壓縮。 快取外掛(如 WP Rocket、WP Fastest Cache)能把頁面產生靜態 HTML、合併與縮小 CSS 與 JavaScript、啟用 Lazy Loading,讓沒被看到的圖片暫不載入。搭配伺服器端的 GZIP 壓縮,可以縮小每次傳輸的檔案大小。這些設定要記得用無痕視窗測試,確認一般訪客看到的快取版本是正確的。
第四、在前面三項都做滿之後,再考慮升級方案。 升級頻寬或換更高階主機是最後手段,不是第一步。如果流量是真實成長帶來的、降載也做到位了還是不夠,那升級才花得值得。對 WooCommerce 這類有檔期的網站,與其常態養一個大方案,不如平時用 CDN 與快取壓低基準,活動前再臨時拉高額度,會更划算。
從被停到不再爆量,該建立什麼樣的監控節奏
頻寬超量不是一次性事件,而是會反覆發生的維運課題,關鍵在於別等到被停才處理。處理完當前的爆量後,把這套流程內化成定期動作,才能真正脫離每月爆量的循環。
養成每月登入一次主機後台、看一眼 AWStats 趨勢的習慣,重點盯三件事:流量曲線有沒有不明暴衝、Robots/Spiders 占比是不是異常、單一 IP 或外部網域有沒有吃掉過多頻寬。任何一項出現異常,趁額度還沒爆就先處理,成本遠低於事後加購。如果手上是 WooCommerce 站台,行銷檔期開跑前先確認 CDN 與快取都正常運作,並預估這波活動的流量量級,必要時提前跟主機商談好臨時擴充,別讓爆量在最會成交的時間點把網站打掛。