兩百年沒有寫教學了
身為一個玩了將近15年麥塊的老玩家
讓我來分享分享現在在2025年開麥塊伺服器的心得吧
# 前言
本篇文章,筆者會從最簡單粗暴的方式
目標族群限於想架設小型私服遊玩的人們
如果你想要經營大型伺服器
你應該要去問問LogoCat之類的大老闆
# 流程
接下來我會根據作業系統、遊戲內版本
不同載入器、以及不同的需求分開來介紹
大概會長下面這樣
- 環境配置
- Java指南
- 網路設定
- windows
- linux & MacOS
- Docker
- 自己寫
- itzg
# 先備條件
- 你會用電腦
- 你有足夠支撐架設伺服器的硬體設備
- 你家有固定IP網路(可選)
- 你不介意你的電腦要一直開著(你有伺服器的話那很正常)
# 正文
# 共通性環境設定
# Java環境
首先我們要知道,你玩的Minecraft是以Java為基底寫成的(基岩版是C++,但你看看我的標題猜猜我要教啥)。
無論是客戶端或者是伺服器端,我們都需要Java Runtime去執行它。
以下是對應的版本
<br>
| Minecraft 版本 | 推薦 Java 版本 | 備註 |
|---|---|---|
| Beta 1.8 ~ 1.5.2 | Java 6 ~ 7 | 舊版 Java,除非你要玩古早版本不然用不到這個 |
| 1.6.1 ~ 1.16.5 | Java 8 | 支援期最長的版本,1.16.5同時可以用Java 11 |
| 1.17.x | Java 16 | 從這裡開始 Java 8 會啟動失敗了 |
| 1.18.x ~ 1.20.4 | Java 17 | 官方以 Java 17 做為主要支援 |
| 1.20.5 +(含 1.21) | Java 21 | 開始要求 Java 21(LTS) |
<br>
# 安裝Java
Minecraft的客戶端,無論是官方啟動器、CurseForge,都自帶Java的Library。
而Prism比較特別,Windows有自帶鏡像可以安裝,而Mac或Linux都得自己裝然後進啟動器偵測。
不過伺服器的話就沒有了,需要自己安裝,或者直接去偷官方啟動器裡面的。
想要安裝Java的話,我會推薦前往Oracle的官網去下載。
安裝JDK或JRE都可以,JDK雖然是開發者工具,但也包含了JRE。你只是要玩遊戲的話,那兩者都可以。
如果你找對網站(其實你可以直接點我給的連結進去,除非他失效了),你會看到以下的畫面

接著右邊那排找到你需要的版本,然後點進去之後會看到有各種不同的作業系統版本給你下載

注意,只要你需要裝Java環境就會需要來這個頁面找,不管哪個作業系統都一樣
接著根據你的系統架構或作業系統選擇版本
如果你都玩最新版
那可以直接下載windows_installer或windows_msi_installer
下載之後他就會有一個可以直接啟動的安裝檔,點開來安裝就可以啦
安裝的時候要勾選「加入環境變數」,不然你可能會找不到路徑喔~
如果你想要在電腦存在多個Java版本的環境
那就建議選Windows Compressed Archive版本,可以自己解壓縮到自己喜歡的路徑做使用
我自己的習慣是開一個C:/JavaRuntime/資料夾並丟在底下
並根據不同版本的資料夾來管理
然後要使用的時候直接引用這個路徑即可
MacOS與Windows的一樣,分成打包檔和安裝檔
Install一樣是安裝檔,Compressed Archive一樣是打包檔
需要注意的是,請確認自己的電腦架構是Intel還是Apple Silicon的晶片
如果你是M1~M4的系列,請選擇Arm64的版本(其實可以Rosseta但轉譯會有問題)
如果是老版Intel的晶片,要選擇x64的版本不然會直接跑不動喔
Linux的話就比較麻煩一點,因為不同的發行版安裝方式都不太一樣
不過大致上可以分為兩種方式
- 使用系統的套件管理工具安裝(我不建議,環境會混在一起)
- 手動下載並安裝
如果要用套件管理器
根據你的作業系統使用你的套件管理器安裝openjdk
# 以debian體系為例
sudo apt-get install openjdk-17-jdk
接著根據需求來添加環境變數,讓你可以使用java直接呼叫程式本體
# 直接寫死環境變數
echo 'export JAVA_HOME=/usr/local/jdk-17' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
如果你想要手動安裝,可以在官網下載符合你版本的Compressed Archive
然後解壓縮到你想要的路徑即可
# 以jdk17為例
tar -xvf jdk-17_linux-x64_bin.tar.gz
sudo mv jdk-17 /etc/java-runtime/jdk-17
接著根據你有沒有要使用多版本來設定環境變數
如果你跟我一樣是用目錄去分類,那可能要自己alias一下版本
# 或者設定alias來控管版本
alias java17="/etc/java-runtime/jdk-17/bin/java"
alias java21="/etc/java-runtime/jdk-21/bin/java"
# 網路環境
接下來我們要設定伺服器的網路環境,這部分會因為你是用什麼樣的網路環境而有所不同
根據你的需求呢,大致上可以分為兩個狀況
- 只想跟好朋友玩,而且你朋友不介意只有你開著才能玩 -> 內網穿透
- 想開給大家一起玩,包括但不限於陌生人。 -> 靜態IP + 端口轉發
<font style="font-weight: bold; font-size: 1.2em;">內網穿透</font>
無論你要使用「開發至局域網」,還是自己架設伺服器執行檔
你都可以只使用VPN連線來達成雖然本人超討厭這個方式
想要在本地架設VPN的話
你可以使用ZeroTier、Hamachi、Radmin VPN等軟體來達成
可以下載任意一個軟體來架設一個區域網路
並讓你的朋友加入這個網路,達到內網穿透的效果
這時候網路就會把你們判定在同一個區網內,就可以連線進行遊玩啦
各牌VPN教學與比較
以ZeroTier為例
- 前往ZeroTier官網
- 註冊帳號並登入
- 建立一個新的網路
- 下載並安裝ZeroTier One軟體
- 啟動ZeroTier One並加入你剛剛建立的網路
- 在ZeroTier的網頁上,允許你的裝置加入網路
- 你的朋友也需要重複步驟4-6來加入同一個網路
- 取得ZeroTier分配給你的虛擬IP
- 在Minecraft中使用這個虛擬IP來連線伺服器
- 開玩!
- 前往Hamachi官網
- 下載並安裝Hamachi軟體
- 啟動Hamachi並建立一個新的網路
- 你的朋友需要下載並安裝Hamachi,然後加入你建立的網路
- 取得Hamachi分配給你的虛擬IP
- 在Minecraft中使用這個虛擬IP來連線伺服器
- 開玩!
(跟隔壁Radmin差不多,只差在這個要註冊帳號)
- 前往Radmin VPN官網
- 下載並安裝Radmin VPN軟體
- 啟動Radmin VPN並建立一個新的網路
- 你的朋友需要下載並安裝Radmin VPN,然後加入你建立的網路
- 取得Radmin VPN分配給你的虛擬IP
- 在Minecraft中使用這個虛擬IP來連線伺服器
- 開玩!
(跟隔壁Hamachi差不多,只差在這個不用註冊帳號)
注意,Radmin和Hamachi都只有Windows版本
只有ZeroTier是跨平台的
<font style="font-weight: bold; font-size: 1.2em;">靜態IP設定</font>
如果你想要讓外面的人都能連進來
那你需要有一個固定的公網IP(或者至少知道你的公網IP)
然後在你的路由器上做端口轉發(Port Forwarding)
簡單講就是告訴你的路由器
「如果有人從外面連到我的25565 port,請幫我轉到我這台電腦」
具體的設定方式因路由器品牌而異
但大致上的流程是:
- 進入路由器管理介面(通常是
192.168.1.1或192.168.0.1) - 找到「Port Forwarding」或「虛擬伺服器」之類的設定
- 新增一條規則:外部Port
25565-> 內部IP你的電腦IP-> 內部Port25565-> TCP - 儲存並套用
如果你家是用中華電信的小烏龜
你可能需要先把它設定成橋接模式(Bridge Mode)
然後讓你自己的路由器去撥號
不然你會卡在兩層NAT後面 外面的人怎樣都連不進來
如果你沒有固定IP的話
可以搭配DDNS服務(像No-IP或DuckDNS)
它會幫你把一個固定的域名指向你浮動的IP
這樣別人只要記你的域名就能連了
# 實際架設
我們會先以原版為範例
介紹不同作業系統下的啟動跟設定方式
由於Mod版的伺服器架設方式在不同OS下基本大同小異
因此介紹完原版後會單獨抽出來說明
# Windows下如何架設Minecraft伺服器
首先先下個提示,如果你的電腦有足夠的記憶體的話
我會建議你跑Docker,這樣不僅可以簡化許多環境設定的問題
還可以讓你的多環境不會互相干擾互串
如果你前面的Java環境和網路環境都設定好了的話
那Windows下架設伺服器可以說相當簡單
以原版為範例,打開你的「原版」Minecraft啟動器
在「安裝」頁籤中,選擇你想要的版本
版本的右下角應該會有一個小小的「伺服器」字樣
點擊即可下載對應版本的伺服器.jar檔案
下載完成後
在你想要的地方,創建一個新資料夾(檔案路徑盡量不要有非英數字元)
接著把剛剛的.jar檔案丟進去
然後在該資料夾內,按住Shift鍵並右鍵
選擇「在此處開啟命令視窗」或「在此處開啟PowerShell視窗」
接著輸入以下指令來啟動伺服器
java -Xmx2G -Xms1G -jar server.jar nogui
其中
-Xmx2G代表最大記憶體使用量為2GB
-Xms1G代表啟動時分配1GB記憶體
不想每次都打指令的替代方案
如果你不想每次都打指令啟動伺服器
你可以在該資料夾內新建一個start.bat的批次檔
(如果你不會建立的話,你可以先「新建文字文件」然後再把副檔名改掉)
然後把上面的指令貼進去並儲存
這樣你只要雙擊這個start.bat檔案就可以啟動伺服器了
當然如果你的java環境是正常的,你甚至直接雙擊server.jar檔案也可以啟動伺服器
緊接著,你就會看到伺服器啟動失敗關掉
欸別緊張,我沒在耍你,真的是這樣操作的
之所以會停住是因為我們在第一次啟動的時候
伺服器會自動生成一些必要的檔案
其中就包含了一個eula.txt的檔案
這個是官方的「使用者授權協議」
你需要打開這個檔案,然後把裡面的eula=false改成eula=true
這樣代表你同意這個協議
儲存後再次啟動伺服器
這次伺服器就會順利啟動啦
伺服器會在你本地的25565port監聽
別人就可以透過你的內網IP+port或者外網port forward連進來囉
# 使用 Linux或MacOS架設Minecraft伺服器
再次提示,你都用Linux了
我想再裝個Docker來跑不會太難的
能夠讓你更輕鬆的
Linux和MacOS的架設方式基本上一樣
畢竟都是走終端機操作
首先確認你的Java環境是正常的
java -version
接著去Mojang的官網或者你的啟動器下載對應版本的server.jar
如果你懶得開瀏覽器 也可以直接用wget抓
# 以1.21.4為例,請自行替換版本連結
mkdir -p ~/minecraft-server && cd ~/minecraft-server
wget https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar
上面的連結僅供參考
實際的下載連結請去Minecraft官網取得
每個版本的hash都不一樣 不要傻傻的複製我的連結
接著跟Windows一樣 第一次啟動讓它生成設定檔
java -Xmx2G -Xms1G -jar server.jar nogui
他會跑一下然後停住 因為你還沒同意eula
把eula.txt裡面的false改成true
sed -i 's/eula=false/eula=true/' eula.txt
改完再跑一次就啟動了
java -Xmx2G -Xms1G -jar server.jar nogui
用systemd讓伺服器自動啟動
如果你想要讓伺服器在開機時自動啟動 或者掛了自動重開
可以寫一個systemd service
sudo tee /etc/systemd/system/minecraft.service << 'EOF'
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/minecraft-server
ExecStart=/usr/bin/java -Xmx4G -Xms2G -jar server.jar nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
# 看看有沒有跑起來
sudo systemctl status minecraft
這樣伺服器就會在背景跑了
要看log的話可以用journalctl -u minecraft -f
server.properties 常用設定
啟動之後會在伺服器目錄下生成一個server.properties檔案
這裡面可以設定很多東西 列幾個常用的
# 伺服器port(預設25565)
server-port=25565
# 最大玩家數
max-players=20
# 遊戲難度(peaceful, easy, normal, hard)
difficulty=normal
# 遊戲模式(survival, creative, adventure, spectator)
gamemode=survival
# 世界種子碼(留空隨機生成)
level-seed=
# 伺服器描述(會顯示在伺服器列表)
motd=A Minecraft Server
# 是否啟用正版驗證(私服關掉 公服建議開)
online-mode=true
# 最大建築高度
max-build-height=319
# 視野距離(越大越吃效能)
view-distance=10
# 開啟命令方塊
enable-command-block=true
改完設定之後要重啟伺服器才會生效
如果你關了online-mode 任何人都可以用任何名字連進來
安全性會大幅下降 請自己斟酌
# 使用 Docker 架設Minecraft伺服器
這是筆者認為最簡單也最好用的方式
不用自己裝Java 不用擔心環境衝突
一個docker compose up -d就搞定了
這裡使用itzg/minecraft-server這個Image
這是目前社群維護最活躍的Minecraft Docker Image
支援原版、Forge、Fabric、Paper、Spigot等等一大堆
# 前置條件
你的機器上要先裝好Docker和Docker Compose
如果還沒裝的話可以參考我的Docker介紹文
# 原版伺服器
建一個資料夾放你的伺服器設定
mkdir -p ~/minecraft-docker && cd ~/minecraft-docker
建立docker-compose.yml
services:
minecraft:
image: itzg/minecraft-server
container_name: minecraft
ports:
- "25565:25565"
environment:
EULA: "TRUE"
TYPE: "VANILLA"
VERSION: "1.21.4"
MEMORY: "4G"
VIEW_DISTANCE: 12
MAX_PLAYERS: 20
MOTD: "Welcome to my server"
DIFFICULTY: "normal"
volumes:
- ./data:/data
restart: unless-stopped
tty: true
stdin_open: true
然後一行指令搞定
docker compose up -d
就這樣 伺服器就跑起來了
所有的世界資料和設定檔都會存在./data資料夾裡
# 看log
docker compose logs -f
# 進入伺服器console
docker attach minecraft
# 按 Ctrl+P Ctrl+Q 退出(不要按Ctrl+C 那會關伺服器)
# Mod伺服器(Forge / Fabric)
只要改TYPE就好 其他都一樣
services:
minecraft:
image: itzg/minecraft-server
container_name: minecraft
ports:
- "25565:25565"
environment:
EULA: "TRUE"
TYPE: "FABRIC"
VERSION: "1.21.4"
MEMORY: "6G"
volumes:
- ./data:/data
restart: unless-stopped
啟動之後 把你要裝的mod丟進./data/mods/資料夾
然後重啟容器就行了
# 丟完mod之後重啟
docker compose restart
Forge的話把TYPE改成FORGE就行
如果要指定Forge/Fabric的版本 可以加上FORGEVERSION或FABRICVERSION的環境變數
詳細的選項可以去看itzg的文件
# Paper / Spigot(插件伺服器)
想要用插件而不是mod的話
Paper是目前效能最好的選擇
services:
minecraft:
image: itzg/minecraft-server
container_name: minecraft
ports:
- "25565:25565"
environment:
EULA: "TRUE"
TYPE: "PAPER"
VERSION: "1.21.4"
MEMORY: "4G"
volumes:
- ./data:/data
restart: unless-stopped
插件丟./data/plugins/裡面就好
Paper是Spigot的fork 效能更好而且向下相容Spigot的插件
除非你有特殊原因 不然建議直接用Paper
# 備份
既然都用Docker了 備份也可以用容器來做
services:
minecraft:
image: itzg/minecraft-server
# ... 省略
backup:
image: itzg/mc-backup
depends_on:
- minecraft
environment:
BACKUP_INTERVAL: "24h"
RCON_HOST: minecraft
PRUNE_BACKUPS_DAYS: 7
volumes:
- ./data:/data:ro
- ./backups:/backups
這樣每24小時會自動備份一次 並保留最近7天的備份
# Mod版本伺服器補充
不管你用哪個作業系統
裝Mod的伺服器流程其實都差不多
差別只在於你選的載入器(Forge或Fabric)
# Forge
- 前往Forge官網下載Installer
- 用Java執行Installer並選擇「Install Server」
- 指定安裝目錄
- 安裝完之後用生成的啟動腳本啟動(通常是
run.sh或run.bat) - 把mod丟進
mods/資料夾 - 重啟伺服器
# Fabric
- 前往Fabric官網下載Installer
- 用Java執行Installer並選擇「Server」
- 選擇Minecraft版本和Fabric版本
- 指定安裝目錄
- 安裝完之後用
start.sh或start.bat啟動 - 把mod丟進
mods/資料夾 - 重啟伺服器
Forge和Fabric的mod是不相容的
Forge的mod不能在Fabric上跑 反之亦然
選的時候先確認你要用的mod支援哪個載入器
# 結語
架Minecraft伺服器這件事情
說難不難 說簡單嘛 坑也是不少
尤其是網路環境的設定最容易卡人
如果你只是要跟三五好友私服玩玩
VPN方案最無腦 裝完連上就能玩
如果你想要認真一點長期經營
那建議直接上Docker + Paper + 固定IP
管理起來方便得多
總之 希望這篇文章能幫到正在爬文的你
有問題可以在下面留言 我看到會回
祝各位開服順利 不要被苦力怕炸掉
