Ubuntu安装我的世界服务器端

木头的喵喵拖孩

1. 安装 java

1
2
3
sudo apt update
sudo apt upgrade
sudo apt install default-jdk

2. 创建 minecraft 用户

因为安全原因, Minecraft 不应该在 root 用户下运行。我们将会创建一个新的系统用户和用户组,用户主目录/opt/minecraft。这个用户有最小权限,来运行 Minecraft 服务器端

1
2
3
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
sudo su - minecraft
mkdir -p ~/{backups,tools,server}

3. Minecraft 服务端

3.1. 下载服务端

wget 下载的是 1.16 版本,如果需要最新版,可以去官网下载最新版本 ,然后通过 FTP 传到/opt/minecraft/server 目录下
java11 可以兼容 Minecraft1.16

1
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server

3.2. 配置服务端

第一次启动服务端会创建 server.properties 和 eula.txt 文件,然后停止运行

1
2
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui

修改 eula.txt
eula=true
类似于需要同意一份协议才能正常运行服务端

1
2
cd ~/server
vim eula.txt

配置好 eula 后,进入 server.properties 配置服务器端信息

1
2
cd ~/server
vim server.properties

修改 server.properties
online-mode=false
这直接关系到开服后能否进入游戏,否则会出现无效会话的问题

3.3. 配置防火墙

1
sudo ufw allow 25565/tcp

4. 其他

4.1. 将服务端添加到系统服务并自启动

创建/etc/systemd/system/minecraft.service 文件

1
touch /etc/systemd/system/minecraft.service

修改文件内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p PASSWORD stop

[Install]
WantedBy=multi-user.target

绑定系统服务并自启动

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl start minecraft
sudo systemctl status minecraft
sudo systemctl enable minecraft

4.2. mcrcon

mcrcon 是一个 rcon 客户端,用来控制 minecraft 服务端

下载并编译

1
2
3
4
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
cd ~/tools/mcrcon
make
./mcrcon -v

修改 server.properties
enable-rcon=true
rcon.port=25575
rcon.password=PASSWORD

通过 mcrcon 访问服务端

1
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p PASSWORD -t

4.3. 定时备份

创建自动备份程序文件 /opt/minecraft/tools/backup.sh ,并给其可执行权限

1
2
touch /opt/minecraft/tools/backup.sh
sudo chmod 770 /opt/minecraft/tools/backup.sh

内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

给当前用户添加定时任务

1
crontab -e

在定时任务文件中添加以下内容,每天 23 点定时运行

1
0 23 * * * /opt/minecraft/tools/backup.sh

4.4. 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
spawn-protection=16

#出生点保护半径(若没有op则不生效)

max-tick-time=60000

#设置每个tick花费的最大毫秒数

query.port=25565

#设置监听服务器的端口号

generator-settings=

#用于自定义超平坦世界的生成

force-gamemode=false

#玩家加入服务器时强制变成默认游戏模式

allow-nether=true

#是否开启地狱世界(关闭后删除将不会生成地狱世界)

enforce-whitelist=false

#在服务器上强制执行白名单。

gamemode=survival

#设置玩家的游戏模式

broadcast-console-to-ops=true

#*给op发送控制台信息?

enable-query=false

#是否开启GameSpy4协议服务器监听器,用于获取服务器信息,建议不要修改

player-idle-timeout=0

#当进入AFK模式,在规定时间内T出服务器,设置成0为不T出服务器

difficulty=easy

#设置游戏的难度(peaceful(0)=和平,easy(1)=简单,normal(2)=普通,hard(3)=困难)

broadcast-rcon-to-ops=true

#*允许远程连接控制台给op发送信息?

spawn-monsters=true

#是否生成怪物

op-permission-level=4

#设定OP的权限等级

pvp=true

#是否可以打架

snooper-enabled=true

#启用后,服务端将会定期发送统计数据到http://snoop.minecraft.net

level-type=default

#确定地图所生成的类型 

hardcore=false

#极限模式(一旦启用,玩家死后会被服务器封禁)

enable-command-block=false

#是否启用命令方块

max-players=20

#最大玩家数

max-world-size=29999984

#设置世界边界的最大半径值,以方块作为单位

resource-pack-sha1=

#资源包的SHA-1值,必须为小写十六进制

function-permission-level=2

#用于控制函数拥有的权限等级。

rcon.port=25575

#设置远程端口号

server-port=25565

#设置服务器本地端口号

server-ip=

#将服务器与一个特定IP绑定。建议留空

#留空,或是填入你想让服务器绑定的域名。

spawn-npcs=true

#是否生成村民

allow-flight=false

#允许或不允许玩家在生存模式下飞行

level-name=world

#主世界的名称

view-distance=10

#设置服务端传送给客户端的区块量

resource-pack=

#可输入指向一个资源包的URI

spawn-animals=true

#生成或不生成动物

white-list=false

#白名单

rcon.password=

#远程访问密码

generate-structures=true

#定义是否在生成世界时生成结构

online-mode=true

#正版验证是否开启(将true改为false后离线 外置 正版都可以进入)

max-build-height=256

#玩家在游戏中能够建造的最大高度

level-seed=

#世界种子

motd=A Minecraft Server

#玩家客户端的多人游戏服务器列表中显示的服务器信息,显示于名称下方

5. 我的世界 Mod 版本

5.1. 服务器下载

这里下载的是 forge 版本的 Minecraft

注意,这个网站需要翻墙访问,因为广告是外网的,看不了广告就下载不了
如果不能翻墙,我这里提供两个解决办法

5.2. 服务器安装

需要先在 windows 上执行下载的 jar 文件,执行后会出现 GUI 界面,选择安装 server 版本,并且选择一个新的文件夹当作服务器目录,
安装完成后,服务器目录会出现一些文件,把这些文件复制到 Ubuntu 上,
然后执行 run.sh 文件,后面就跟安装普通服务器一样了,需要同意 eula,然后修改 server.properties,最后再次执行 run.sh 就行了

5.3. 安装 Mod

可以去 Minecraft Mod 网站 下载 Mod,
如果想通过中文查找 mod,可以去 我的世界中文维基 mod 百科 搜索,
然后将 Mod(一般是.jar 文件)放到游戏目录的 mods 目录下就可以用了,
客户端和服务器都需要将 Mod 放到 mods 文件夹里面,否则不能正常运行。

5.4. 安装光影(可跳过)

光影不需要配置服务器,只需要配置客户端,
首先需要在客户端中安装光影加载 Mod(这里以OptiFine为主)。
需要注意的是,该 Mod 不能从Minecraft Mod 网站 下载,应该在安装客户端时选择安装
我们的游戏启动器是HMCL,在其中新添加一个游戏,选择 Forge 和 OptFine,最后安装即可。
关键顺序如下图所示:

安装成功带光影加载 Mod 的客户端之后,就需要去 下载心仪的光影包 了。
光影包下载完成后,需要放到游戏的对应目录中,这个目录可以在 游戏启动界面-选项-视频设置-光影 中打开,然后把刚下载的光影包放到对应目录中,选择它就行了

5.5. 将服务端添加到系统服务并自启动

注意,这里设置和普通服务器有一些不一样,不同之处就是需要 root 用户来执行,不能用 minecraft 用户执行,猜测可能是 Mod 版本需要 root 的权限比较多
创建/etc/systemd/system/minecraft.service 文件

1
touch /etc/systemd/system/minecraft.service

修改文件内容为,User 必须是 root

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Minecraft Server

[Service]
User=root
WorkingDirectory=/opt/minecraft_forge/server
ExecStart=/usr/bin/bash run.sh
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p PASSWORD stop

[Install]
WantedBy=multi-user.target

绑定系统服务并自启动

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl start minecraft # 手动启动服务器最好切换到root用户
sudo systemctl status minecraft
sudo systemctl enable minecraft # 设置自启动最好也切换到root用户
  • 标题: Ubuntu安装我的世界服务器端
  • 作者: 木头的喵喵拖孩
  • 创建于: 2023-04-22 14:25:42
  • 更新于: 2024-05-21 10:56:15
  • 链接: https://blog.xx-xx.top/2023/04/22/Ubuntu安装我的世界服务器/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。