前言#
Linux 開服也很簡單,內存佔用小,推薦使用,下面使用 Ubuntu18.04.1 演示
沒有正版帳號一樣可以玩
基岩版協議 UDP,默認端口 19132
Java 版協議 TCP,默認端口 25565
-
minebbs:https://www.minebbs.com/
-
mod 百科:https://www.mcmod.cn/
-
mc 導航網:https://www.mcnav.net/
啟動器(內含各版本)
-
pcl2 啟動器:https://afdian.net/p/0164034c016c11ebafcb52540025c377
-
hcml 啟動器:https://hmcl.huangyuhui.net/
-
官方啟動器:https://www.minecraft.net/zh-hans/download/alternative
在 Minecraft 服務端中,最重要的部分就是服務端核心,核心通常有以下幾類:
-
Minecraft 原版核心
-
Minecraft 純插件核心
-
Minecraft 純 MOD 核心
-
Minecraft 插件 MOD 混合核心
插件是一些能幫助服主完成管理工作的額外組件,它不需要再客戶端安裝
相比於插件,MOD 則是需要在服務端和客戶端同時添加才能夠使用,單獨在服務端添加客戶端將無法進入伺服器,單獨在客戶端添加,能進入伺服器,但 MOD 將不會起到作用(輔助類另說,如小地圖,頂部顯示物品,Xray 透視等,這裡僅指個人功能類)
目前我的世界 Java 版主流服務端有:(還有一些我沒了解到的就不列出來了)
核心名稱 | 描述 | 地址 |
---|---|---|
原版服務端 | 官方服,即純淨服,無法添加插件,安裝 forge 後可以添加 Mod,可自定義內容少 | https://mcversions.net |
Bukkit、CraftBukkit(水桶服) | 比較原始的插件服務端,並不支持添加 Mod,但可以添加 Bukkit 插件它能使用 CraftBukkit 插件,但它對 Spigot 插件兼容性比較差,它只能加 CraftBukkit 插件和 Spigot 的部分插件 | https://getbukkit.org/download/craftbukkitt |
Spigot(水龍頭) | Spigot 對 Bukkit 進行了優化,支持添加 Bukkit 插件,但不支持添加 Mod,穩定性良好 | https://getbukkit.org/download/spigott |
Paper (紙龍頭) | Paper 對 Spigot 進行了優化,支持 CraftBukkit 和 Spigot 插件,但不支持添加 Mod,再帶 TPS 優化,在 1.9.x 之前的版本的核心自帶反作弊功能,1.9.x 後被移除 | https://papermc.io/ |
MCPC+ | 可以安裝 Mod 及 Bukkit 插件,優化雞肋。僅支持 JAVA7 運行,最高支持版本 1.7.10 | https://sourceforge.net/projects/cauldron-unofficial/files/old_releases/version_1/ |
KCauldron (KC 端) | KC 端,可以安裝 Mod 及 Bukkit 插件,比 MCPC+,Cauldron,Thermos 優化了一波,吃內存並不多了,但最高支持版本僅到 1.7.10 | https://sourceforge.net/projects/kcauldron/ |
Thermos (水瓶端) | 是 KCauldron 的優化版本,比原先的 Cauldron 更加穩定,能添加 MOD 也能添加 Bukkit 插件,最高支持版本 1.7.10 | https://cyberdynecc.github.io/Thermos/install |
Contigo (水杯端) | 是 Thermos 的兒子,進行了大多優化,伺服器滯後優化,多線程進行運算,更低的延遲,更好的世界防護 (Forge 調用的物品不經過 Bukkit 插件!) | https://github.com/djoveryde/Contigo |
Uranium (鈾端) | 是 KC 的優化版本,多線程進行運算,效率更高,支持 Bukkit 插件和 ForgeMOD ,最高支持版本 1.7.10 | https://www.uraniummc.cc/ |
Catserver (貓端) | 國人開發的一代神端,支持 ForgeMOD 和 Bukkit/Spigot 插件,並且優化了多線程,1.12.2 版本 | https://catmc.org/ |
mohist (墨端) | 既可以加入 mods 又可以加入插件,兼容 paper 的一些插件支持,不需要多大的伺服器即可運行,並且自帶多線程,比較多插件不支持,部分 mods 不支持 | https://mohistmc.com/ |
Arclight (海螺端) | 既可以加入 mods 又可以加入插件,伺服器網絡環境不太好,下載必備庫比較累 | https://github.com/IzzelAliz/Arclight/releases |
magma | 基於 Forge 和 CraftBukkit 的 1.12.2 伺服器,使用 Forge 的 mod 和 Bukkit 插件,後續會支持 1.14&1.15 | https://magmafoundation.org/ |
Sponge Forge (海綿端) | 擁有自己的插件體系,在 1.8 及以上版本能做到 Mod 與 Sponge 插件的共同使用 | https://www.spongepowered.org/ |
Sponge Vanilla (海綿香草端) | 支持 Sponge 插件,不支持 ForgeMOD ,佔用內存少,配置需求低 | https://www.spongepowered.org/ |
Glowstone (螢石) | 一個完全開源的服務端,支持 Bukkit 插件。版本為 1.12.2 | https://www.glowstone.net/ |
java 下載(鏡像站):#
內用戶建議使用鏡像站下載(建議使用編程寶庫,是我覺得比較全的)
-
injdk:https://www.injdk.cn/
mc 版本以及對應的 Java 版本:
-
1.7.X —— jdk8
-
1.8.X —— jdk8/11
-
1.12.X —— jdk8/11
-
1.16.X —— jdk16/11
-
1.17.X —— jdk16 以上
-
1.18.X—— jdk17
Ubuntu 可以直接用 apt 倉庫安裝 jdk
下面就以 catserver 端來開服演示:
貓端是我第一個開服所用的端,也是我覺得挺不錯的端,雖然貓端有過一段黑歷史,但絲毫不影響我的使用。眾所周知 mod 最繁榮的兩個版本 1.7.10 和 1.12.2 版本,新版本內容豐富點,所以我直接選擇了 catserver(注意:每個版本和每個核心都有自己的存在意義,不要詆毀其他的服務端來吹捧自己的選擇).
簡單的教程:#
命令安裝 JDK8,命令下載 catserver,命令啟動
詳細教程:#
- 準備伺服器:
伺服器(Linux 系統 Ubuntu、Debian、centos 都行)需要你自己準備(我建議用伺服器,因為 24 小時全天運行,且穩定)使用官方推薦 Ubuntu 開服,我這裡使用的是 Ubuntu18.04.1 版本
- 放行端口:
根據的服務端的協議選擇協議(比如說 Java 版為 tcp 協議),Java 版的默認端口是 25565,有些 Ubuntu 會開著防火牆的,可以直接關掉也可以選擇端口放行(下文會介紹如何操作)
默認登錄帳號是 Ubuntu
- 查看當前防火牆狀態,inactive 是關閉狀態 active 是開啟狀態。【
centos:firewall-cmd --state
】
sudo ufw status
- 關閉防火牆(如果沒有開啟就不用執行),【
centos:systemctl stop firewalld
】
sudo ufw disable
- 查看 apt 庫都有哪些 jdk 版本,【
centos:yum search java|grep jdk
】
apt-cache search java|grep jdk
- 安裝 Java 環境,需要再次輸入 y 確認,【
centos:yum install java-1.8.0-openjdk
】
sudo apt-get install openjdk-8-jdk
請查看 轉載後記 部分,有對 Java 環境版本的推薦,這裡不推薦安裝 OpenJDK8
- 查看 jdk 是否安裝成功
java -version
- 創建一個空目錄 (cat 是目錄名字,可以隨意)
mkdir /home/ubuntu/cat
- 進入目錄
cd /home/ubuntu/cat
- 下載開服包,打開 catserver 官網,獲取下載鏈接,【
centos:yum -y install wget
】
wget https://luohuayu.coding.net/p/CatServerRes/d/CatServerRes/git/raw/master/serverjar/CatServer-a8b73e9-universal.jar
- 先運行一次,下載必要文件
java -jar CatServer-a8b73e9-universal.jar
- catserver 端忽略這步
官方開服包第一次運行的話會生成一個eula.txt
輸入 vim eual.txt
接著按 i 鍵進入編輯模式,把 eula=false
的 false
改成 true
接著按 esc
鍵
再輸入:wq
回車(冒號別漏)
-
輸入
stop
回車,停止運行 -
關閉正版驗證,在
server.properties
文件裡的online-mode=true
中的true
改成false
我學過一點 Linux 基礎,所以更偏向直接用命令修改(速度快效率高),當然可以選擇安裝寶塔面板,可視化文件管理,適合小白
- 先介紹直接用命令修改,可以按
tab
鍵補全
vim /home/ubuntu/cat/server.properties
- 按 i 鍵或者 ins 鍵進入編輯模式,把光標移動到
online-mode=true
把true
改成false
接著按 esc
鍵
再輸入:wq
回車(冒號別漏)
- 接下來建立一個 screen(cat 是窗口名字,可以隨意)【
centos:yum install screen
】
screen -S cat
- 啟動伺服器,顯示下面信息就證明開服成功了
java -jar CatServer-a8b73e9-universal.jar
然後就可以執行服主命令了,比如說 op {玩家id}
給某玩家管理員權限(需要玩家在線)
- 接下來連接世界測試一下,輸入公網 IP,端口是默認的 25565(可以不用填端口,除非改成了其他端口)
- 按下 Ctrl+A+D 掛起窗口,接著查看 screen 有沒有正常
screen -ls
ok 沒問題。這時候 ssh 連接軟件就可以關掉了
配置:#
Server.properties 配置文件,官方文檔:https://minecraft.fandom.com/wiki/Server.properties
generator-settings= # 用於自定義超平坦世界的生成
op-permission-level=4 # 設定 OP 的權限等級 #1 – OP 可以無視重生點保護 #2 – OP 可以使用 /clear、/gamemode、/tp 等等命令,可編輯命令方塊 #3 – OP 可以使用 /ban、/deop、/kick 以及 /op 命令 #4 – OP 可以使用 /stop 命令
allow-nether=true # 是否開啟地獄世界 (關閉後刪除將不會生成地獄世界)
level-name=world # 主世界名稱
enable-query=false #是否開啟 GameSpy4 協議伺服器監聽器,用於獲取伺服器信息,建議不要修改
allow-flight=false # 允許玩家在安裝添加飛行功能的 mod 前提下在生存模式下飛行。
prevent-proxy-connections=false # 如果開啟伺服器發送的和 Mojang 的驗證伺服器的 ISP/AS 不一樣將會被踢出
server-port=25565 # 伺服器的端口號
max-world-size=29999984 # 設置世界邊界的最大半徑值,單位為方塊。通過成功執行的命令能把世界邊界設置得更大,# 但不會超過這裡設置的最大方塊限制。如果設置的 max-world-size 超過默認值的大小,那將不會起任何效果。
level-type=DEFAULT # 確定地圖所生成的類型 #DEFAULT – 標準世界 #FLAT – 超平坦世界 #LARGEBIOMES – 預設世界,但所有生態系都更大(僅快照 12w19a,或正式版 1.3 之後可用)#AMPLIFIED – 預設世界,但世界生成高度提高(僅快照 13w36a,或正式版 1.7.2 之後可用)#CUSTOMIZED – 自快照 14w21b 以來,伺服器也支持自定義地形。使用方法是在 generator-settings 貼上代碼
enable-rcon=false # 是否允許遠程訪問伺服器控制台。
force-gamemode=false # 玩家加入伺服器時強制變成默認遊戲模式
level-seed= #世界種子
server-ip= #將伺服器與一個特定 IP 綁定。建議留空,留空或是填入你想讓伺服器綁定的域名。
network-compression-threshold=256 # 默認會允許 n-1 字節的數據包正常發送, 如果數據包為 n 字節或更大時會進行壓縮。# 所以,更低的數值會使得更多的數據包被壓縮,但是如果被壓縮的數據包字節太小將會得不償失。#-1 – 永久禁用數據包壓縮 #0 – 壓縮全部數據包 #(建議在 64-1500)
max-build-height=256 # 玩家在遊戲中能夠建造的最大高度
spawn-npcs=true #決定是否生成村民
white-list=false #伺服器的白名單,OP 無須加入白名單
spawn-animals=true # 動物是否可以生成
snooper-enabled=true #一旦啟用,將允許服務端定期發送統計數據到 http://snoop.minecraft.net.
hardcore=false #極限模式(啟用後,玩家死後會被伺服器封禁)
resource-pack-sha1= #資源包的 SHA-1 值,必須為小寫十六進制
online-mode=false # 是否開啟正版驗證
resource-pack= # 可輸入指向一個資源包的 URI。玩家可選擇是否使用該資源包
pvp=true # 是否可以打架
difficulty=1 # 設置遊戲的難度(peaceful (0)= 和平,easy (1)= 簡單,normal (2)= 普通,hard (3)= 困難)
enable-command-block=false # 是否啟用命令方塊
player-idle-timeout=0 # 當進入 AFK 模式,在規定時間內 T 出伺服器,設置成 0 為不 T 出伺服器
gamemode=0 #設置玩家的遊戲模式 (survival (0)= 生存,creative (1)= 創造,adventure (2)= 冒險,spectator (3)= 觀察者)
max-players=20 #最大玩家數
max-tick-time=60000 # 設置每個 tick 花費的最大毫秒數
spawn-monsters=true #是否生成怪物
view-distance=10 #設置服務端傳送給客戶端的區塊量 (範圍 3-15) # 減小此數值可有效緩解卡頓
generate-structures=true # 定義是否在生成世界時生成結構(如村莊)
motd=A Minecraft Server # 玩家客戶端的多人遊戲伺服器列表中顯示的伺服器信息,顯示於名稱下方。 中文需轉碼
Catserver 文件夾結構
Catserver 的文件夾結構
├─config //模組的一些設置
├─libraries //一些支持庫
├─logs //存放服務端日誌的文件夾
├─mods //存放模組的文件夾
├─plugins //存放插件的文件夾
└─bStats //存放插件配置的一些文件夾
└─world //世界文件夾
├─data //世界數據文件夾
│ ├─advancements
│ └─functions
├─DIM-1 //世界裡的世界#滑稽
│ ├─data
│ │ └─functions
│ ├─playerdata
│ └─region
├─DIM1
│ ├─data
│ │ └─functions
│ ├─playerdata
│ └─region
├─playerdata //玩家數據文件夾
└─region
├─banned-ips.json //存放了被 ban IP 玩家的 UUID 及遊戲名稱等相關信息。
├─banned-players.json //存放了被 ban ID 玩家的 UUID 及遊戲名稱等相關信息
├─bukkit.yml //由 Bukkit 派生得到的服務端都有的文件。保存著 Bukkit 所提供的最基本的設置選項。
├─catserver.yml //這是 Paper 才有的配置文件,您一般不會在 Bukkit 或 Spigot 中看到它。
├─CatServer-a8b73e9-universal.jar //服務端核心
├─commands.yml //它提供了一種快速而簡單的方法來強制伺服器使用Mojang提供的命令(而不是Bukkit中內置的命令)而不產生衝突。
├─eula.txt //在首次開服的時候,我們需要同意 EULA 協議。
├─help.yml //一些插件的幫助信息會出現在這裡面,一般不需要進行什麼修改。
├─ops.json //op們的遊戲暱稱 UUID 等信息會在這裡出現。
├─permissions.yml //是默認的權限定義YAML文件,在啟動時自動生成。它的主要功能是將權限節點組合到一個文件中,以便權限插件(以及使用權限的插件)可以在整個系統中使用它。
├─server.properties //服務端的一些基本設置就在裡面,如設置端口,設置遊戲難度,設置遊戲模式(生存、創造等)等。
├─spigot.yml //這是 Spigot 才有的配置文件,您一般不會在 Bukkit 中看到它。因為 Paper 是由 Spigot 派生而來的服務端,所以在 Paper 的服務端中,它也會出現。
├─usercache.json //儲存著用戶部分信息的緩存文件。
├─version_history //一些 Minecraft 和服務端核心的版本信息。
├─whitelist.json //白名單列表。(如果您在server.properties中開啟了白名單,您就可以在該文件中添加和管理誰被允許或不被允許進入伺服器)
關於 screen 的更多設置#
如果想恢復服務端後台執行我的世界命令,只需輸入
screen -r cat
如果想關服可以執行下面命令
在 screen 外殺掉名為 mc 的 screen
screen -S cat -X quit
關於 Ubuntu 防火牆更多設置#
- 開啟防火牆,需要輸入 y 確認
sudo ufw enable
- 防火牆放行端口
sudo ufw allow/deny 19132
// 允許 / 拒絕 訪問 19132 端口,19132 端口後可跟 /tcp 或 /udp,表示 tcp 或 udp 封包。
- 放行完成,需要重啟防火牆生效
sudo ufw reload
安裝 1Panel#
Ubuntu 安裝命令:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
轉載後記#
由於 Minecraft 的更新,很多朋友會選擇 最新版本 進行開服,因此推薦安裝 OpenJDK17
sudo apt-get install openjdk-17-jdk
如果伺服器的配置小於 2 核心 2GB 不推薦開服,因為很可能內存溢出,導致開服失敗
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://fmcf.cc/posts/technology/Minecraft-Java-Server-Ubuntu