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 權重,這些不完美但可替換的東西,可能反而更接近你的現實。

不是最強。

但夠用。

而且是你付得起、修得動、壞了也不會把整個生活一起炸掉的方案。