Minecraft 小服的 DDoS:我最後沒有買高防,只用了幾台便宜 VPS
那時候我開的是一個 1.16 的 Minecraft 伺服器。
同時在線大概 30 個人,Discord 裡約 200 人。不是商業服,也沒有收贊助。它比較像一個自己養出來的小社群:有人固定上線,有人聊天,有人只是偶爾回來看一下。
這種規模很尷尬。
它不是大到可以把基礎設施成本當成營運成本,也不是小到被打掉就算了。玩家會問,伺服器會斷,家裡網路也不是只有我一個人在用。
而且這不是我第一次遇到 DDoS。
以前開別的伺服器時,ISP 甚至打電話來通知。家人那時候股票做到一半,家裡網路直接斷掉。那種感覺很現實:你不是只有一台 Minecraft 伺服器被打,你是把家裡其他人的網路也一起拖下水。
所以後來我很早就知道一件事:
如果要用家裡網路開服務,前面一定要擋。
不是因為我想把架構弄得很帥,也不是因為我有什麼完整的資安規劃。只是家裡網路不能被拿來賭。伺服器可以掉線,玩家可以等,但家裡其他人不應該因為我開服而斷線。
看起來正規的方案通常不是給我這種規模用的
一般人講到 DDoS 防護,很容易想到幾種東西:高防 BGP、台灣本地清洗、專線、專人協助、企業級防護。
這些東西聽起來都很正規。
問題是,它們通常也很貴。
而且對我這種 Minecraft 小服來說,有些服務包進來的東西其實我不需要。像專人接線、電話服務、很完整的企業支援流程,對公司可能有價值,但對我沒有。
玩家只在乎能不能連上。
我也只在乎幾件事:
- 家裡真實 IP 不要暴露。
- 被打時不要直接炸掉家裡網路。
- 延遲不要高到玩家明顯不能玩。
- 成本不要高到比伺服器本身還荒謬。
- 掛了可以換,可以修,不要把我綁進很重的合約或服務流程。
台灣本地清洗和高防 BGP 不一定沒用,但它不是我這種預算的答案。它比較像是你已經有收入、有 SLA、有客戶壓力,才會認真考慮的東西。
我那時候沒有收贊助,也沒有收入。說白一點,我也沒錢丟給那些高價廠商。
所以我只能自己找出路。
我原本就有用 Vultr 擋在前面
我開服一段時間後,前面就已經不是直接裸露家裡 IP,而是用 VPS 擋。
這裡的邏輯很簡單:
玩家不要直接連到家裡。
玩家先連到外面的 VPS,再由 VPS 把流量轉回真正的 Minecraft 伺服器。這樣就算有人打,也先打到 VPS,不會第一時間打到家裡網路。
這不是什麼神級防禦。VPS 也可能被打死,線路也可能不穩,節點也可能要換。
但它有一個很大的優點:便宜、可替換、我控制得了。
對小服來說,這比買一個看起來很漂亮但月費很高的高防方案更實際。
GCP LB:不是不能用,是成本感覺不對
那時候我也試過 GCP。
原因很單純:有試用點數,就想試試看 Google Cloud 的 Load Balancer 到底有多強。
雲端服務的介面和文件會讓人產生一種錯覺,好像只要把架構搬上去,就會變得比較「正規」。Load Balancer、全球網路、雲端基礎設施,看起來都比幾台便宜 VPS 乾淨很多。
但小型 Minecraft 伺服器的問題不是架構圖漂不漂亮。
問題是錢從哪裡來。
Minecraft 流量不是純網頁請求。玩家一直連著,資料一直跑。當你開始用雲端 LB 和外部流量計費時,帳單就會變成一個很實際的問題。
對有收入的產品來說,這可能只是成本。對一個沒有收贊助、30 人在線的小服來說,這會變成不成比例的支出。
所以 GCP LB 給我的結論不是「不能用」。
它的結論比較像:這東西可能很強,但它不是我的答案。
最後的架構:Tokyo Vultr 兩台,香港一台
最後我用的做法很樸素。
前面放幾台 VPS:
- Vultr Tokyo 兩台
- 香港一台
然後用同一個 domain,透過 SRV DNS 做權重配置和分流。
粗略來說就是:
玩家
↓
同一個 Minecraft domain / SRV DNS
↓
Tokyo Vultr / Tokyo Vultr / HK VPS
↓
真正的 Minecraft 伺服器
這樣做的目的不是做到完美防禦,而是把風險拆開。
如果只有一個入口,那個入口被打掉就全死。
如果有多個入口,至少可以分流,可以調權重,可以換節點。某個節點路由不好或被打,也不一定代表全部玩家都不能進。
這個方法沒有企業級防護那種漂亮承諾,但它符合我的條件:便宜、夠用、能自己控制。
缺點:延遲和路由都不是你能完全控制的
這種做法當然有代價。
最明顯的是延遲。
玩家原本如果能直接連台灣,延遲可能很低。現在繞到東京或香港,再回到真正的伺服器,路徑一定變長。
但實際上整體還能壓在 80ms 以下,對 Minecraft 來說是可控的。
比較麻煩的是 ISP 路由。有些玩家連出國時,路由會突然變爛。有時候不是你的 VPS 壞,也不是伺服器壞,而是某個 ISP 到日本或香港的路線很怪。
這種問題你很難完全解決。你只能多放幾個入口,讓玩家有機會被分到比較正常的路徑,或在必要時手動調整 DNS 權重。
所以它不是無痛方案。
它只是比「家裡 IP 直接裸奔」好很多,也比「花一堆錢買我用不起的高防服務」實際很多。
小服的基礎設施其實是在算很土的帳
這件事後來留給我的,不是「DDoS 很可怕」這種結論。
DDoS 當然麻煩,但真正重要的是:你要先知道自己保護的是什麼。
我不是在保護一個有 SLA 的商業服務。
我是在保護一個小 Minecraft 社群,還有家裡的網路不要被一起拖下去。
所以我不需要買到最完整的企業防護,也不需要讓架構看起來像大公司。我需要的是一個成本能承受、壞了能處理、延遲還能接受的入口層。
很多小型網路服務最後都會回到這種問題:
你沒有大公司的預算,但你會遇到跟大公司同類型的麻煩。
只是你的解法不能照抄大公司。
大公司可以買服務、買 SLA、買專線、買顧問。小服只能算:
這台 VPS 一個月多少錢?
被打死能不能換?
玩家延遲會不會爆?
家裡網路會不會斷?
我有沒有時間維護?
這些問題聽起來不漂亮,但比架構名詞更接近現實。
我最後學到的事
如果你要在家裡開服務,不管是 Minecraft、網站、遊戲伺服器,還是其他東西,都不要把家裡 IP 當成可以隨便暴露的東西。
家裡網路不是機房。
它後面可能還有家人在看影片、工作、看盤、開會。你開的服務被打,不應該讓整個家一起承擔成本。
至於防 DDoS,也不是每個人都應該一開始就去買高防。
如果你的規模還小,收入也沒有覆蓋成本,那便宜 VPS、反代、多節點、DNS 權重,這些不完美但可替換的東西,可能反而更接近你的現實。
不是最強。
但夠用。
而且是你付得起、修得動、壞了也不會把整個生活一起炸掉的方案。