2026 年遊戲伺服器架設:Minecraft 與 Valheim 自架指南
初期投入
0 至 25,000 元(可用既有舊機)
0 元
0 元
月費估算
電費約 150 至 400 元
約 600 至 1,500 元
約 400 至 1,200 元
規格自由度
最高,硬體隨你換
中,受限於方案
低,多為共用 CPU
模組自由度
完全自由
完全自由
常受面板限制
維護負擔
高(你要自己顧)
中(系統仍要自己顧)
低(廠商處理)
停電與斷網風險
有,需 UPS 與備援
資料主權
完全在自己手上
在雲端業者手上
在服務商手上
看到這裡你可能會想:「家用自架月費便宜這麼多,那還需要考慮嗎?」關鍵在於「隱形成本」。你的時間是成本,停電中斷是成本,ISP 業者半夜施工斷網是成本,家用 IP 被 DDoS 攻擊也是成本。如果你的團隊成員分布在不同時區、或者你希望伺服器 24 小時全年無休且 SLA 有保障,雲端 VPS 仍然是更穩妥的選擇。反之,如果你的朋友群都是同一個時區、遊玩時段集中在晚上,家用自架的性價比幾乎無人能敵。
2026 年的硬體與網路環境有什麼不同
幾個值得注意的趨勢變化:
.db 檔案在世界變大後也會膨脹到數百 MB。傳統硬碟會讓玩家明顯感受到「卡頓尖峰」。二、動手前的規劃:需求、規格與架構
很多人失敗的原因不是技術不夠,而是「還沒想清楚就開始裝」。這一節請當成施工前的設計圖,把需求寫下來,後面選硬體、選核心、選方案都會輕鬆很多。
先算出你真正需要多少資源
記憶體是最常被高估也最常被低估的資源。原版 Minecraft 伺服器的記憶體需求其實不高,但如果裝了 200 個模組、開啟大範圍視野距離,需求會直線上升。以下為實務經驗值,供你抓個大概:
使用情境
建議記憶體
建議 CPU
儲存空間
原版 Vanilla,2 至 5 人
2 至 4 GB
2 核
10 GB SSD
Paper 加少量外掛,5 至 15 人
4 至 8 GB
4 核
40 GB SSD
輕度模組包(約 50 模組),5 至 10 人
8 至 12 GB
4 至 6 核
80 GB NVMe
大型模組包(150 模組以上),10 至 20 人
12 至 16 GB
6 核高時脈
160 GB NVMe
Valheim 專用伺服器,2 至 6 人
4 至 6 GB
2 至 4 核
20 GB SSD
Valheim 大型建築群,6 至 10 人
8 GB
4 核高時脈
40 GB SSD
請注意,記憶體「不是愈大愈好」。JVM 的堆積記憶體配置過大,反而會讓垃圾回收的停頓時間變長,造成週期性的卡頓。後面談 JVM 參數時會再詳細說明。
網路環境自我檢測:三個必做檢查
在花錢之前,請先花十分鐘做以下三項檢查,這能幫你省下大量挫折。
100.64.0.0/10 這個網段,或者與你從 whatismyip 網站查到的公網 IP 不同,那你大概率在 CGNAT 後面,傳統的連接埠轉發會失效。解法有三:打電話請業者配發真實 IP、改用 IPv6 直連、或改用內網穿透工具。test-ipv6.com 檢查。若你的裝置拿到可用的 IPv6 位址,恭喜你,可以直接讓玩家用 IPv6 連線,繞過整個 NAT 問題。缺點是 IPv6 位址較長,建議搭配 DDNS 或網域使用。三種常見部署架構,你適合哪一種?
架構 A:家用裸機。直接把伺服器裝在 Windows 或 Linux 主機上。優點是設定最快、除錯最直覺;缺點是這台機器不能做別的事,而且一旦系統要更新或重開機,伺服器就中斷。適合「有一台閒置電腦」的玩家。
架構 B:家用虛擬化平台。用 Proxmox VE 或 Unraid 當底層,把遊戲伺服器裝在 LXC 容器或虛擬機裡。優點是備份與快照極其方便,還能同時跑 NAS、影音服務;缺點是需要一點學習曲線,而且底層系統本身要維護。
架構 C:雲端 VPS。在 Vultr、Hetzner、Linode 或 Oracle Cloud 開一台虛擬主機。優點是網路穩定、有固定 IP、不怕停電;缺點是成本較高,而且部分入門方案是共用 vCPU,在玩家上線尖峰時會出現「搶不到 CPU」的現象。挑選時務必注意:避開「Burstable」或「Shared vCPU」的入門方案,遊戲伺服器需要穩定可用的運算資源。
三、Minecraft 伺服器架設完整實戰
Minecraft 的伺服器架設彈性極大,正因為選項多,新手最容易在「該用哪個核心」這一步就卡住。我們先從核心選擇談起。
核心選擇:原版、Paper、Purpur、Fabric、NeoForge
Minecraft Java 版的伺服器核心大致可以分成三類:
server.jar。特性是完全忠於原版遊戲機制,紅石、生怪、農場行為與單人遊戲一致。缺點是效能最差,且幾乎沒有管理功能(沒有白名單以外的權限管理、沒有好用的備份指令)。適合小型、純原版體驗的私服。決策建議:如果你只是要跟朋友玩原版生存,選 Paper;如果想玩模組包,先確認你朋友想玩的那個整合包支援哪個 Loader,再決定。不要為了「想要兩者兼得」而去用混合核心,那通常會讓你花更多時間在除錯上。
Java 環境與 JVM 參數調校
Minecraft 從 1.20.5 開始要求 Java 21。2026 年的主流選擇是 Java 21 LTS(最穩定)或 Java 25 LTS(效能略佳,但部分舊模組可能有相容性問題)。強烈建議使用 Eclipse Temurin 或 Amazon Corretto 的發行版,不要用 Oracle JDK 的商業版。
JVM 啟動參數對 Minecraft 效能的影響非常巨大。目前社群公認的最佳實踐仍是 Aikar's Flags 的現代版本,以下是針對 G1GC 的建議參數(假設配置 8 GB 堆積記憶體):
java -Xms8G -Xmx8G \
XX:+UseG1GC \
XX:+ParallelRefProcEnabled \
XX:MaxGCPauseMillis=200 \
XX:+UnlockExperimentalVMOptions \
XX:+DisableExplicitGC \
XX:+AlwaysPreTouch \
XX:G1NewSizePercent=30 \
XX:G1MaxNewSizePercent=40 \
XX:G1HeapRegionSize=8M \
XX:G1ReservePercent=20 \
XX:G1HeapWastePercent=5 \
XX:G1MixedGCCountTarget=4 \
XX:InitiatingHeapOccupancyPercent=15 \
XX:G1MixedGCLiveThresholdPercent=90 \
XX:G1RSetUpdatingPauseTimePercent=5 \
XX:SurvivorRatio=32 \
XX:+PerfDisableSharedMem \
XX:MaxTenuringThreshold=1 \
Dusing.aikars.flags=https://mcflags.emc.gs \
Daikars.new.flags=true \
jar server.jar nogui
幾個重點說明:-Xms 與 -Xmx 設成相同數值(避免執行期動態擴張堆積造成額外停頓)、-XX:+AlwaysPreTouch 會在啟動時就把記憶體實際配置好(啟動變慢但執行期更穩)、MaxTenuringThreshold=1 讓短命物件更快被回收。如果你使用的是 Java 21 以上的版本,-XX:+UnlockExperimentalVMOptions 有些參數已經不需要這個旗標,若啟動時出現警告可以忽略或移除對應參數。
另外提醒:不要把所有實體記憶體都給 JVM。作業系統、檔案快取、外掛本身都需要記憶體。一般建議 JVM 堆積上限不超過機器總記憶體的 70%。
Linux 環境下的安裝步驟與 systemd 服務
以 Ubuntu Server 24.04 LTS 為例,以下是完整的安裝流程。
第一步,建立專用使用者。永遠不要用 root 跑遊戲伺服器。
sudo adduser --system --home /srv/minecraft --shell /bin/bash mcserver
sudo mkdir -p /srv/minecraft
sudo chown -R mcserver:mcserver /srv/minecraft
第二步,安裝 Java。
sudo apt update
sudo apt install -y temurin-21-jdk
java -version
第三步,下載 Paper 核心。建議直接到 PaperMC 官網查詢最新版本編號,或使用其 API。以下示範手動下載,將 1.21.x 與 build 替換成當前版本。
sudo -u mcserver -i
cd /srv/minecraft
curl -o server.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.x/builds/XXX/downloads/paper-1.21.x-XXX.jar"
echo "eula=true" > eula.txt
第四步,首次啟動產生設定檔。第一次啟動會產生 server.properties、world 資料夾等。建議先啟動一次,看到「Done」訊息後輸入 stop 關閉。
sudo -u mcserver java -Xms2G -Xmx2G -jar server.jar nogui
第五步,建立 systemd 服務。這樣就能用 systemctl 管理,並設定開機自動啟動。
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
Type=simple
User=mcserver
WorkingDirectory=/srv/minecraft
ExecStart=/usr/bin/java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -jar /srv/minecraft/server.jar nogui
Restart=on-failure
RestartSec=15
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
將上述內容存成 /etc/systemd/system/minecraft.service,接著執行:
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
sudo systemctl status minecraft
若你需要透過終端機輸入指令(例如 op、whitelist add),可以搭配 screen 或 tmux 來包裝,或者安裝 RCON 客戶端工具。另一個更優雅的選擇是使用 Crafty Controller 或 Pterodactyl Panel,這些網頁管理面板可以讓你直接從瀏覽器看即時日誌、下指令、排程備份。
Windows 環境下的安裝與自動啟動
如果你的伺服器是 Windows 主機,流程相對簡單:安裝對應版本的 JDK、把 server.jar 放進資料夾、寫一個 start.bat:
@echo off
java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -jar server.jar nogui
pause
要設定開機自動啟動,可以使用 NSSM(Non-Sucking Service Manager)把這個批次檔包成 Windows 服務,好處是當機時會自動重啟,且不需要使用者登入。另一個做法是用「工作排程器」設定「登入時執行」,但這樣就需要保持使用者登入狀態。
Windows 上還有一個常見陷阱:Windows Defender 防火牆預設會封鎖外部連線。記得在「進階安全性防火牆」中新增輸入規則,放行 TCP 25565(或你自訂的埠)。
外掛、模組與資源包管理
Paper 系的外掛只需丟進 plugins/ 資料夾即可,重啟後生效。幾個實用且維護活躍的外掛:LuckPerms(權限管理)、CoreProtect(方塊記錄與回溯,強烈建議裝)、EssentialsX(基礎指令)、spark(效能分析)。
Fabric 模組則分為「伺服器端」與「客戶端」兩種。放在 mods/ 資料夾的模組,如果只在客戶端生效(例如光影、介面優化),放進伺服器反而可能造成崩潰。反之,某些模組(例如 Lithium、FerriteCore、Krypton)是純伺服器端的效能優化模組,裝了對客戶端毫無影響但能大幅降低 CPU 與記憶體負擔,非常值得安裝。
資源包(Resource Pack)方面,如果你要強制玩家使用特定材質包,可以在 server.properties 中設定 resource-pack 指向一個可直接下載的 URL,並用 resource-pack-sha1 驗證完整性。
跨平台需求:GeyserMC 讓基岩版玩家也能進來
如果你有朋友只玩手機版、Switch 或 Windows 基岩版,可以安裝 GeyserMC 外掛。它是一個翻譯層,讓基岩版客戶端能連上 Java 版伺服器。安裝方式是在 plugins/ 放入 Geyser-Spigot.jar 與 Floodgate.jar,重啟後基岩版玩家就能用 UDP 19132 連入。
要注意幾點:Geyser 並非完美,紅石機制、部分物品欄操作、地圖與告示牌的顯示都會有落差;某些反作弊外掛也會誤判基岩版玩家。建議把 Geyser 當成「讓朋友方便進來玩」的輔助,而不是主要遊玩方式。
四、Valheim 專用伺服器架設完整實戰
Valheim 的伺服器架構與 Minecraft 完全不同。它由 Iron Gate 官方提供一個專用伺服器執行檔(透過 SteamCMD 下載),沒有像 Paper 那樣的最佳化分支,也很少有官方的效能調校選項。這使得「硬體選擇」與「世界維護」變得格外重要。
SteamCMD 安裝與檔案結構
SteamCMD 是 Valve 提供的命令列工具,用來下載專用伺服器檔案。以 Ubuntu 為例:
sudo adduser --system --home /srv/valheim --shell /bin/bash valheim
sudo apt install -y lib32gcc-s1 curl
sudo -u valheim -i
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +login anonymous +force_install_dir /srv/valheim/server +app_update 896660 validate +quit
這裡的 896660 是 Valheim 專用伺服器的 App ID。下載完成後,/srv/valheim/server 目錄下會有 valheim_server.x86_64(Linux 版執行檔)與相關的 Unity 函式庫。
啟動參數與伺服器設定
Valheim 伺服器的啟動參數都是命令列旗標,沒有圖形介面。以下是一個典型的啟動指令:
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
./valheim_server.x86_64 \
name "My Valheim Server" \
port 2456 \
world "Dedicated" \
password "YourStrongPassword" \
public 1 \
savedir "/srv/valheim/data"
參數說明:-name 是伺服器名稱(會顯示在 Steam 伺服器列表中)、-port 是遊戲埠(UDP 2456,查詢埠會自動使用 2457)、-world 是世界名稱(會對應到 worlds_local 下的檔案)、-password 至少 5 個字元且不能出現在伺服器名稱中、-public 1 表示公開到社群列表(設 0 則只有知道 IP 的人能連)。
若你的朋友中有使用 Xbox 或 Microsoft Store 版本的玩家,可以加上 -crossplay 參數啟用跨平台連線,但這會讓伺服器改走 PlayFab 中繼,且無法使用部分模組。此外,-savedir 建議指向一個獨立目錄,方便備份。
與 Minecraft 一樣,建議用 systemd 管理。需要注意的是,Valheim 伺服器在收到終止訊號時需要一點時間寫入世界檔,因此 systemd 的 ExecStop 建議用 kill -INT 而非強制殺掉:
[Unit]
Description=Valheim Dedicated Server
After=network.target
[Service]
Type=simple
User=valheim
WorkingDirectory=/srv/valheim/server
Environment="LD_LIBRARY_PATH=/srv/valheim/server/linux64"
Environment="SteamAppId=892970"
ExecStart=/srv/valheim/server/valheim_server.x86_64 -name "My Server" -port 2456 -world "Dedicated" -password "YourStrongPassword" -public 1 -savedir /srv/valheim/data
ExecStop=/bin/kill -INT $MAINPID
Restart=on-failure
RestartSec=20
TimeoutStopSec=60
[Install]
WantedBy=multi-user.target
模組同步的地獄與解法
Valheim 的模組框架主要是 BepInEx。安裝方式是把 BepInEx 解壓到伺服器根目錄,模組 DLL 放進 BepInEx/plugins/。問題在於:大部分模組要求客戶端與伺服器版本完全一致,只要有玩家版本不同,就會出現「連線逾時」或「版本不符」的錯誤,而且錯誤訊息通常非常模糊,難以診斷。
實務上的解法有三個方向:
建立模組包標準。把所有需要的模組打包成一個壓縮檔,附上清楚的說明與版本號,要求每位玩家解壓到遊戲目錄。這聽起來很土,但對於 10 人以下的小圈圈是最可靠的做法。
使用模組管理器。例如 Thunderstore Mod Manager 或 r2modman,可以匯出與匯入設定檔(profile),讓玩家一鍵同步。伺服器端則手動安裝同樣的模組清單。
盡量減少客戶端模組。純伺服器端的模組(例如效能優化、增加怪物種類但不改行為的模組)不會造成同步問題。把「非必要」的客戶端模組砍掉,能大幅降低版本對不上的機率。
另外提醒:Valheim 每次官方更新後,模組通常需要幾天甚至幾週才會跟上。如果你打算長期經營,建議在 Steam 上鎖定伺服器版本(使用 +app_update 896660 -beta default 或指定 build id),避免自動更新導致所有模組失效。
效能特性與調校重點
Valheim 的效能瓶頸與 Minecraft 類似但更嚴峻。它是 Unity 引擎開發,遊戲世界中的所有物件(建築、樹木、掉落物、怪物)都以 ZDO(Zoned Object)形式存在,每次玩家移動時都會觸發大量同步。這導致幾個現象:
世界檔案會持續膨脹。一個活躍數月的世界,.db 檔案很容易長到 300 MB 以上,載入與存檔時間會明顯變長。
地面掉落物是隱形殺手。玩家打完怪不撿東西、砍樹後樹枝散落一地,這些物件都會常駐記憶體並持續同步。定期清理掉落物(或使用自動清理模組)能有效改善卡頓。
大型建築群會拖垮伺服器。特別是大量使用「建造模式下可放置的裝飾物件」時,每個物件的狀態同步都會累積負擔。
單核時脈決定一切。Valheim 無法有效利用多核心,因此一台 4 核高時脈的 CPU 會完勝 16 核低時脈的伺服器 CPU。
調校建議:記憶體配置 4 至 8 GB(視人數與建築規模)、確保使用 SSD、定期重啟伺服器(例如每天凌晨四點自動重啟,可釋放累積的記憶體碎片)、限制同時在線人數不超過硬體能承擔的上限。社群也有一些工具可以「重建」世界檔案,把已刪除物件的殘留資料清除,能有效縮小 .db 檔案。
五、對外連線:連接埠、網域與穿透方案
伺服器跑起來了,但朋友連不進來,這是自架最常見的挫折。這一節把連線問題一次講清楚。
連接埠一覽與轉發設定
遊戲
協定
預設埠
用途
Minecraft Java
TCP
25565
遊戲連線
Minecraft Bedrock
UDP
19132
遊戲連線
GeyserMC
UDP
19132
基岩版翻譯層
Valheim
UDP
2456 至 2457
遊戲連線與查詢
RCON(選用)
TCP
自訂
遠端管理,切勿公開
在路由器上設定「連接埠轉發(Port Forwarding)」時,請把外部埠對應到伺服器的內網 IP。強烈建議為伺服器設定固定內網 IP(在路由器中綁定 MAC 位址),否則重開機後 IP 變動會讓轉發規則失效。
安全性提醒:不要把 RCON 埠或是 SSH 埠直接暴露在公網上。RCON 如果沒有設定密碼或密碼太弱,等於把伺服器管理權交給全世界。SSH 則建議改用金鑰登入、關閉密碼認證、並考慮更換預設埠或限制來源 IP。
DDNS、網域與 IPv6 直連
家用 IP 通常是浮動的,每隔幾天或重開機就換一次。解決方案是 DDNS(動態 DNS):註冊一個免費服務(例如 DuckDNS、No-IP),在伺服器上跑一個更新腳本定時回報當前 IP,玩家就能用固定的網域名稱連線。
如果你有自己的網域,也可以用 Cloudflare 的 API 寫一個簡單的 DDNS 腳本,把 mc.example.com 指向家用 IP。這樣看起來專業,也方便日後換主機時只要改 DNS 記錄。
IPv6 直連是另一個選項。若你的 ISP 提供 IPv6,且伺服器有可用的 IPv6 位址,玩家可以用 [2001:db8::1]:25565 的形式直接連線。優點是完全不需要 NAT 轉發,缺點是位址難記,且部分玩家的網路環境不支援 IPv6(特別是行動網路或校園網路有時會限制)。
不想開埠?內網穿透與 VPN 方案
如果你在 CGNAT 後面,或是不想讓家用 IP 曝光,以下三種方案可以考慮:
Tailscale:基於 WireGuard 的 Mesh VPN,免費方案對個人使用非常夠用。你只需要在伺服器與每位玩家電腦上安裝 Tailscale、登入同一個帳號(或使用分享功能),玩家就能用 Tailscale 配發的虛擬 IP 連線。優點是設定極簡、加密傳輸、不需要開任何埠;缺點是每位玩家都要安裝軟體。
ZeroTier:概念類似,提供較多的自訂網路設定,適合稍微進階的使用者。
playit.gg:專門為遊戲伺服器設計的隧道服務,提供一個公開的網域與埠,玩家不需要安裝任何軟體就能連線。免費方案會有限速與連線品質波動,適合小型私服測試用。
選擇建議:朋友都是固定班底、願意裝軟體,選 Tailscale;想要「任何人給個位址就能連」,用 playit.gg 或直接租一台便宜的 VPS 做反向代理。
六、資安、備份與日常維運
伺服器架起來只是開始,能不能「活得久」取決於維運。這一節談三件最重要的事:安全、備份、監控。
最小權限原則與防火牆設定
主機層面的防護,請至少做到以下幾點:
遊戲伺服器以專用使用者身分執行,不使用 root。
使用 ufw 或 nftables 設定防火牆,只開放必要的埠(SSH、遊戲埠),其餘一律拒絕。
SSH 關閉密碼登入、改用金鑰、關閉 root 直接登入。
安裝 fail2ban 監控 SSH 與服務日誌,自動封鎖暴力破解來源。
定期執行 apt upgrade 更新系統安全性修補。
Minecraft 若使用 online-mode=false(離線模式),任何人都能用任何暱稱登入,包含管理員帳號。除非你有特殊理由,否則永遠保持 online-mode=true。
遊戲層面的防護,Minecraft 請務必安裝白名單(whitelist on)並搭配 CoreProtect 記錄所有方塊變動。Valheim 沒有內建白名單,只能靠密碼保護,因此密碼強度非常重要——建議至少 16 個字元、混合大小寫與數字,並且不要在 Discord 或其他公開頻道張貼。
自動備份與災難還原演練
備份是維運的核心。請記住三二一原則:三份副本、兩種媒介、一份異地。實作上可以這樣做:
每日自動備份。Minecraft 建議先執行 save-all flush 再打包世界資料夾;Valheim 則建議在重啟伺服器時進行備份(因為執行中複製 .db 可能得到不完整的檔案)。
保留多個版本。至少保留最近 7 天的每日備份與最近 4 週的每週備份。不要只保留「最新一份」,因為如果存檔損毀是漸進式的(例如某個模組造成的慢性破壞),你可能需要回溯到更早的版本。
異地備份。用 rclone 把備份同步到 Google Drive、Backblaze B2 或另一台機器。雲端空間成本極低,卻能在硬碟故障時救你一命。
定期演練還原。備份最可怕的狀況是「從來沒測過能不能還原」。建議每季做一次演練:把備份解壓到另一個目錄、用不同埠啟動、確認世界能正常載入。
以下是 Minecraft 的簡易備份腳本範例:
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/srv/backups/minecraft
WORLD_DIR=/srv/minecraft
mkdir -p "$BACKUP_DIR"
透過 RCON 或 tmux 送出存檔指令
mcrcon -H 127.0.0.1 -P 25575 -p "your_rcon_password" "save-all flush"
sleep 5
tar -czf "$BACKUP_DIR/world-$DATE.tar.gz" \
C "$WORLD_DIR" world world_nether world_the_end plugins config
只保留 14 天
find "$BACKUP_DIR" -name "world-*.tar.gz" -mtime +14 -delete
同步到雲端
rclone copy "$BACKUP_DIR" remote:minecraft-backups
監控、告警與效能診斷
你不會想等到玩家抱怨「好卡」才發現問題。基本的監控可以這樣做:
資源監控:安裝 netdata 或 Prometheus + Grafana,監看 CPU、記憶體、磁碟 I/O 與網路流量。netdata 開箱即用,對個人伺服器非常友善。
程序存活監控:systemd 的 Restart=on-failure 已經能處理大部分狀況。若你需要更即時的告警,可以用 Uptime Kuma 監控遊戲埠是否可連線,並在異常時發送 Discord 通知。
Minecraft 效能分析:使用 spark 外掛,執行 /spark profiler start 收集 30 秒的資料,然後用網頁介面查看是哪個外掛或哪個實體吃掉了 TPS。這比盲目地加記憶體有效得多。
Valheim 效能診斷:官方工具較少,主要靠觀察伺服器日誌與系統資源。若 CPU 單核長期 100%、記憶體持續成長不下降,通常代表世界檔案需要清理或重建。
七、常見問題與排錯速查
以下是自架玩家最常遇到的問題與處理方向。
Q1:朋友顯示「Can't connect to server」或「連線逾時」。先確認三件事:伺服器是否在執行(systemctl status)、防火牆是否放行、路由器轉發是否正確。若前三項都沒問題,大概率是 CGNAT 或 ISP 阻擋,改用 Tailscale 測試即可確認。
Q2:自己用內網 IP 連得上,但外網 IP 連不上。這通常是「NAT 迴環(NAT Loopback)」問題,部分路由器不支援從內網存取自己的公網 IP。請用外部網路(例如手機熱點)測試,或請朋友幫忙驗證。
Q3:Minecraft 玩家進去後一直被踢,顯示「Outdated server」或「Outdated client」。客戶端與伺服器版本不一致。請統一版本,或安裝 ViaVersion 系列外掛讓不同版本的客戶端都能連入。
Q4:Valheim 卡在「Connecting...」然後失敗。最常見原因是模組版本不一致,其次是密碼含特殊字元導致解析錯誤,或是世界檔案損毀。建議先移除所有模組測試,確認基本連線正常後再逐一加回。
Q5:伺服器跑一段時間後愈來愈卡,TPS 掉到 10 以下。用 spark 找出元凶。常見原因包括:實體數量爆炸(村民、掉落物、生怪磚)、某個外掛有記憶體洩漏、世界檔案過大、或是 JVM 參數不當導致 GC 頻繁。先加記憶體通常沒用,找出根因才是關鍵。
Q6:停電或當機後世界檔案損壞。這就是為什麼要備份。Minecraft 有 --forceUpgrade 與區域檔案修復工具;Valheim 的 .db 若損毀,可以嘗試用 .db.old 備份還原,或使用社群的修復工具。無論如何,請養成「每天自動備份 + 異地保存」的習慣。
Q7:想從家用搬到 VPS,或從 VPS 搬回家用,該注意什麼?基本上只需搬移世界資料夾與設定檔。Minecraft 要一併搬 server.properties、plugins/、mods/、ops.json 等;Valheim 要搬 worlds_local/ 與模組。搬移前先在目的地測試啟動,確認版本一致後再切換 DNS 或通知玩家新 IP。
八、結語:自架的核心價值在於「可控」
從 2026 年的角度回頭看,自架遊戲伺服器早已不是「硬派玩家的專利」。拜 Docker、內網穿透工具與高效能低功耗硬體之賜,現在一台放在書桌角落的迷你主機,就能撐起一群朋友長達數年的遊戲世界。真正需要投入的,其實是對「維運」這件事的理解:備份、監控、更新、除錯。
本文從需求評估、硬體規格、Minecraft 與 Valheim 的完整架設流程,一路談到網路連線、資安防護與自動化備份。你不需要一次全部做到位——先讓伺服器跑起來,跟朋友玩個幾晚,再逐步補上防火牆、備份腳本與監控。過程中遇到問題是很正常的,社群資源(包括雅寶社區 · 頂客論壇的 3C 科技教學版)隨時可以發問交流。
最後給準備動手的人三句話:第一,先確認你的網路能不能開埠,這會決定你要走哪條路線;第二,備份永遠比效能調校重要,一個能還原的爛伺服器勝過一個跑很快但存檔消失的神機;第三,選擇你真正會維護的方案,而不是規格表上最漂亮的方案。祝你的世界長長久久,玩家絡繹不絕。
```