banner
Magneto

Magnetoの小屋

Magneto在區塊鏈上の小屋,讓我們的文章在互聯網上永遠熠熠生輝!!

我的世界Java版開服教程(Ubuntu)

前言#

Linux 開服也很簡單,內存佔用小,推薦使用,下面使用 Ubuntu18.04.1 演示

沒有正版帳號一樣可以玩

基岩版協議 UDP,默認端口 19132

Java 版協議 TCP,默認端口 25565

啟動器(內含各版本)

在 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.10https://sourceforge.net/projects/cauldron-unofficial/files/old_releases/version_1/
KCauldron (KC 端)KC 端,可以安裝 Mod 及 Bukkit 插件,比 MCPC+,Cauldron,Thermos 優化了一波,吃內存並不多了,但最高支持版本僅到 1.7.10https://sourceforge.net/projects/kcauldron/
Thermos (水瓶端)是 KCauldron 的優化版本,比原先的 Cauldron 更加穩定,能添加 MOD 也能添加 Bukkit 插件,最高支持版本 1.7.10https://cyberdynecc.github.io/Thermos/install
Contigo (水杯端)是 Thermos 的兒子,進行了大多優化,伺服器滯後優化,多線程進行運算,更低的延遲,更好的世界防護 (Forge 調用的物品不經過 Bukkit 插件!)https://github.com/djoveryde/Contigo
Uranium (鈾端)是 KC 的優化版本,多線程進行運算,效率更高,支持 Bukkit 插件和 ForgeMOD ,最高支持版本 1.7.10https://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.15https://magmafoundation.org/
Sponge Forge (海綿端)擁有自己的插件體系,在 1.8 及以上版本能做到 Mod 與 Sponge 插件的共同使用https://www.spongepowered.org/
Sponge Vanilla (海綿香草端)支持 Sponge 插件,不支持 ForgeMOD ,佔用內存少,配置需求低https://www.spongepowered.org/
Glowstone (螢石)一個完全開源的服務端,支持 Bukkit 插件。版本為 1.12.2https://www.glowstone.net/

java 下載(鏡像站):#

內用戶建議使用鏡像站下載(建議使用編程寶庫,是我覺得比較全的)

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,命令啟動

詳細教程:#

  1. 準備伺服器:

伺服器(Linux 系統 Ubuntu、Debian、centos 都行)需要你自己準備(我建議用伺服器,因為 24 小時全天運行,且穩定)使用官方推薦 Ubuntu 開服,我這裡使用的是 Ubuntu18.04.1 版本

  1. 放行端口:

根據的服務端的協議選擇協議(比如說 Java 版為 tcp 協議),Java 版的默認端口是 25565,有些 Ubuntu 會開著防火牆的,可以直接關掉也可以選擇端口放行(下文會介紹如何操作)

image

默認登錄帳號是 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=falsefalse 改成 true

接著按 esc

再輸入:wq 回車(冒號別漏)

  • 輸入 stop 回車,停止運行

  • 關閉正版驗證,在 server.properties 文件裡的 online-mode=true 中的 true 改成 false

我學過一點 Linux 基礎,所以更偏向直接用命令修改(速度快效率高),當然可以選擇安裝寶塔面板,可視化文件管理,適合小白

  • 先介紹直接用命令修改,可以按 tab 鍵補全
vim /home/ubuntu/cat/server.properties
  • 按 i 鍵或者 ins 鍵進入編輯模式,把光標移動到 online-mode=truetrue 改成 false

接著按 esc

再輸入:wq 回車(冒號別漏)

image

  • 接下來建立一個 screen(cat 是窗口名字,可以隨意)【centos:yum install screen
screen -S cat
  • 啟動伺服器,顯示下面信息就證明開服成功了
java -jar CatServer-a8b73e9-universal.jar

然後就可以執行服主命令了,比如說 op {玩家id} 給某玩家管理員權限(需要玩家在線)

image

  • 接下來連接世界測試一下,輸入公網 IP,端口是默認的 25565(可以不用填端口,除非改成了其他端口)

image

image

  • 按下 Ctrl+A+D 掛起窗口,接著查看 screen 有沒有正常
screen -ls

image

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#

官網:https://1panel.cn/

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


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。