−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

在 VPS 上搭建一台 Minecraft 伺服器

2026年7月27日 · 2 分鐘閱讀 · EQVPS Team

這是我們面向遊戲伺服器的 VPS 頁面的動手搭檔。那一頁講的是哪個方案合適;這一頁講的是真正把伺服器立起來——Paper、一個正經的 systemd 服務、省 RAM 的設定、防火牆和備份。讀到最後,您會有一台熬過崩潰、熬過重新啟動、也不會悄悄吃掉您整台機器的 Minecraft 伺服器。

開始前一個誠實的說明:那個用例頁裡的 CPU 和 RAM 界限仍然適用。Paper 在一個 Small 或 Medium 方案上給一群朋友玩很棒。一個給大社群的 150 mod 整合包不是這些方案的用途,再多的設定也修不了那個。說清楚這點,我們開搭。

1. 裝 Java

Paper 跑在 Java 上。裝一個 headless JDK——對目前的 Minecraft 版本那是 Java 21:

sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version

如果您的 Minecraft 版本更老,裝它要求的 Java(1.18-1.20 時代是 17)。如果版本不對,伺服器記錄會大聲抱怨。

2. 設好伺服器目錄和 Paper

以它自己的使用者跑伺服器,而不是 root——萬一出岔子,您想讓爆炸半徑小。

sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server

下載您 Minecraft 版本的 Paper jar(從他們的下載頁拿 URL)、儲存為 server.jar:

sudo -u minecraft wget -O server.jar "PASTE_PAPER_DOWNLOAD_URL_HERE"

跑一次以產生設定檔案,然後接受 EULA:

sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# 它會立刻停下、要你接受 EULA
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt

-Xmx3G 是 JVM 堆的上限。在一個 4 GB 的 Small 方案上,給 JVM 約 3 GB 讓作業系統有喘息空間。別把它設成您的全部 RAM——JVM 在堆之外還有開銷,而 OOM 殺手不談判。

3. 調 server.properties 省 RAM

這是您免費給自己買來效能的地方。開啟 server.properties、設:

view-distance=8
simulation-distance=6
max-players=10
  • view-distance —— 每個玩家周圍保持載入的區塊數。預設的 10 很慷慨;8(甚至 6)明顯省 RAM 和 CPU,幾乎沒人注意到差別。
  • simulation-distance —— 實體、紅石和作物生長實際 tick 的距離。更低更便宜。6 是一個合理的起點。
  • max-players —— 設成您實際預期的數,這樣一群意外來客不會炸掉您的 RAM 預算。

記住單執行緒的現實:Minecraft 的 tick 依賴一個核。如果 TPS 掉了,更多 RAM 幫不上——降低 simulation-distance 和怪物上限會。

4. 作為 systemd 服務來跑

這是把「一個我跑過一次的 jar」變成「一台伺服器」的部分。建立 /etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft Paper Server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143

[Install]
WantedBy=multi-user.target

Restart=on-failure 是要緊的那行——如果 JVM 崩潰,systemd 在十秒內把它拉回來。SuccessExitStatus=... 143 讓 systemd 不把一次正常的 SIGTERM 關機當成失敗。啟用並啟動它:

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f   # 即時日誌

現在它開機就起、崩潰就重新啟動,記錄進 journald。

5. 開防火牆埠

Minecraft 預設監聽 TCP 25565。只開那個:

sudo ufw allow 25565/tcp
sudo ufw enable

把伺服器的 IP 給您的朋友(如果您改了埠就加 :25565)。別開任何您不需要的——跑自己機器的全部意義就是您決定什麼可達。

6. 備份世界

那件人們一直跳過、直到希望自己沒跳過的那天。一個簡單的指令碼:

#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end

從 cron 跑它,而且——這是重要的一半——把封存拷到伺服器之外,到物件儲存或另一台機器。一個跟世界在同一塊磁碟上的備份隨磁碟一起死。如果您的世界要緊,在打 tar 之前先在伺服器控制台裡跑 save-off 和 save-all,這樣您永遠不會在寫入中途做備份。

就這樣

Java、Paper、調好的設定、一個自動重新啟動的 systemd 服務、一個防火牆埠,以及住在別處的備份。那就是一台像樣運轉的 Minecraft 伺服器。

如果您還沒有機器:挑一個方案——一小群人用 Small($8)、往十個玩家推就用 Medium($12)——用 USDC 或 USDT 付款(免 KYC、不用檔案),您大約 60 秒就有 root。然後照著這一頁往下做。最後再誠實提醒一次:這是給原版或跟朋友玩 Paper 的對的設定。一個給大社群的重整合包需要不同的硬體,我們寧願您先從我們這兒聽到這句。

常見問題

我需要哪個 Java 版本?

近期的 Minecraft 版本想要 Java 17 或更新;最新的想要 Java 21。裝您 Minecraft 版本要求的那個 OpenJDK 建置——把伺服器跑一次,如果 Java 版本不對它會清楚地告訴您。用一個 headless 的 JRE/JDK,這樣您不會拉進一個您永遠用不上的桌面棧。

登出後怎麼讓伺服器繼續跑?

把它作為一個 systemd 服務來跑。那給您 start/stop/status 指令、經 journalctl 的記錄、JVM 崩潰時自動重新啟動、以及開機啟動——遠好過一個您得記得重連的 screen 工作階段。服務檔案在指南里。

我該給 JVM 多少 RAM?

把 -Xmx 設得比您方案的總 RAM 略低,好讓作業系統留一些——在一個 4 GB 的 Small 方案上,給 JVM 約 3 GB 是合理的。別把 -Xmx 設成您的全部 RAM;作業系統和 JVM 自己的開銷需要餘量,否則您會被 OOM 收割者殺掉。

我怎麼備份世界?

停掉伺服器(或先跑 save-off/save-all)、把世界資料夾打成 tar、把封存拷到機器之外——到物件儲存或另一台伺服器。把它放上 cron。一個跟世界坐在同一塊磁碟上的備份不是備份;它隨磁碟一起死。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。