Featured image of post 我的世界Java版开服教程(Ubuntu)

我的世界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.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 下载(镜像站):

内用户建议使用镜像站下载(建议使用编程宝库,是我觉得比较全的)

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 会开着防火墙的,可以直接关掉也可以选择端口放行(下文会介绍如何操作)

默认登录账号是 Ubuntu

  • 查看当前防火墙状态,inactive 是关闭状态 active 是开启状态。【centos:firewall-cmd --state
1
sudo ufw status
  • 关闭防火墙(如果没有开启就不用执行),【centos:systemctl stop firewalld
1
sudo ufw disable
  • 查看 apt 库都有哪些 jdk 版本,【centos:yum search java|grep jdk
1
apt-cache search java|grep jdk
  • 安装 Java 环境,需要再次输入 y 确认,【centos:yum install java-1.8.0-openjdk
1
sudo apt-get install openjdk-8-jdk

请查看 转载后记 部分,有对 Java 环境版本的推荐,这里不推荐安装 OpenJDK8

  • 查看 jdk 是否安装成功
1
java -version
  • 创建一个空目录 (cat 是目录名字,可以随意)
1
mkdir /home/ubuntu/cat
  • 进入目录
1
cd /home/ubuntu/cat
  • 下载开服包,打开 catserver 官网,获取下载链接,【centos:yum -y install wget
1
wget https://luohuayu.coding.net/p/CatServerRes/d/CatServerRes/git/raw/master/serverjar/CatServer-a8b73e9-universal.jar
  • 先运行一次,下载必要文件
1
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 键补全
1
vim /home/ubuntu/cat/server.properties
  • 按 i 键或者 ins 键进入编辑模式,把光标移动到 online-mode=truetrue 改成 false

接着按 esc

再输入:wq 回车(冒号别漏)

  • 接下来建立一个 screen(cat 是窗口名字,可以随意)【centos:yum install screen
1
screen -S cat
  • 启动服务器,显示下面信息就证明开服成功了
1
java -jar CatServer-a8b73e9-universal.jar

然后就可以执行服主命令了,比如说 op {玩家id} 给某玩家管理员权限(需要玩家在线)

  • 接下来连接世界测试一下,输入公网 IP,端口是默认的 25565(可以不用填端口,除非改成了其他端口)
  • 按下 Ctrl+A+D 挂起窗口,接着查看 screen 有没有正常
1
screen -ls

ok 没问题。这时候 ssh 连接软件就可以关掉了

配置:

Server.properties 配置文件,官方文档:https://minecraft.fandom.com/wiki/Server.properties

“server.properties 配置文件”
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 文件夹结构”
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 的更多设置

如果想恢复服务端后台执行我的世界命令,只需输入

1
screen -r cat

如果想关服可以执行下面命令 在 screen 外杀掉名为 mc 的 screen

1
screen -S cat -X quit

关于 Ubuntu 防火墙更多设置

  • 开启防火墙,需要输入 y 确认
1
sudo ufw enable
  • 防火墙放行端口
1
sudo ufw allow/deny 19132

// 允许 / 拒绝 访问 19132 端口,19132 端口后可跟 /tcp 或 /udp,表示 tcp 或 udp 封包。

  • 放行完成,需要重启防火墙生效
1
sudo ufw reload

安装1Panel

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

Ubuntu 安装命令:

1
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

转载后记

由于 Minecraft 的更新,很多朋友会选择 最新版本 进行开服,因此推荐安装 OpenJDK17

1
sudo apt-get install openjdk-17-jdk

如果服务器的配置小于 2 核心 2GB 不推荐开服,因为很可能内存溢出,导致开服失败

Licensed under CC BY-NC-SA 4.0
本博客已运行 days , h , m , s
常记溪亭日暮,沉醉不知归路~