最近没事翻了翻自己腾讯云账号发现居然还有个学生主机闲置了,1C2G的配置。还差四个月就到期,闲置不如拿来做点事,备案当网站伺服器就别想了,来跑个伺服器吧。

动手之前,建议先将伺服器重置到Ubuntu最新的LTS版系统(当然你也可以用其他版本或者其他Linux发行版,不过本教程的步骤是在Ubuntu上进行的)。

安装环境

通过SSH连接伺服器,确保伺服器已经安装好了下面这些软件:

  • wget
  • unzip
  • screen

没有的话运行下面的指令安装:

1
2
3
sudo apt-get install wget
sudo apt-get install unzip
sudo apt-get install screen

部署服务端

(执行后面这些命令时请确保你是管理员)

随后我们去minecraft.net获取最新版本的服务端应用程序。不要点击下载,右键绿色下载按钮获取链接(类似这样:https://minecraft.azureedge.net/bin-linux/bedrock-server-1.17.11.01.zip ),复制到剪贴板里。

使用sudo su登录root用户。

新建一个档案夹:

1
2
mkdir mc
cd mc

下载服务端,将刚才复制的下载链接粘贴到wget后面。

1
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.17.11.01.zip #这里用你刚才复制到的地址替换

解压服务端软件包。

1
unzip bedrock-server-1.17.11.01.zip #压缩包名以你刚才下载的为准

直接运行以下命令运行服务端。

1
LD_LIBRARY_PATH=. ./bedrock_server

默认端口号为19132,伺服器地址就是你伺服器的ip。运行后保持ssh连接就可以尝试登录伺服器了。(登陆不上请调整你伺服器的防火墙,将相关端口放行)

此时停止伺服器有两种方法:

  1. 使用mc服务端指令stop(服务端自行停止)
  2. 断开SSH连接(强制停止)
  3. Ctrl+C(强制停止)

配置档案

解冻出来的档案夹里有一个叫server.properties的档案,你可以使用你伺服器上的文本编辑器编辑它(这里使用vim)。

1
vim 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
server-name=bedrock #伺服器名称
gamemode=survival #游戏模式,允许的值有:survival、creative和adventure
force-gamemode=false #是否强制用户使用指定模式
difficulty=easy #游戏难度,允许的值有:peaceful、easy、normal和hard
allow-cheats=true #是否允许作弊
max-players=300 #最大玩家数,建议小伺服器设定到30人左右
online-mode=false #在线模式,启用后必须使用xbox live账号登录伺服器
white-list=false #白名单,启用后只允许白名单内用户登入
server-port=19132 #伺服器端口号
server-portv6=19133 #ipv6下伺服器的端口号
view-distance=32 #可视距离
tick-distance=4 #玩家周围加载区块的范围
值越大越影响伺服器性能(4到22)
player-idle-timeout=30 #玩家挂机30秒后会被踢出伺服器
max-threads=8 #伺服器最大线程数,设置为0自动调整(不建议)
level-name=Bedrock level #/worlds 档案夹中的地图档案夹名称,如果你编辑这个档案之前已经运行过一次服务端了,建议不要更改这个值,更改之后会重新生成世界
level-seed= #默认未赋值,可输入任意字符串指定生成世界使用的种子
default-player-permission-level=member #新玩家加入伺服器之后的角色,允许的值有:visitor、member和operator
texturepack-required=false #是否强制使用伺服器的材质包
content-log-file-enabled=false #是否开启日志记录
compression-threshold=1 #要压缩的原始网络有效负载的最小大小,建议不要改(取值范围1~65535
server-authoritative-movement=server-auth #这里应该是设置客户端像伺服器报告玩家位置的方式,是否需要伺服器反复确定,ping值较低的伺服器建议保持不变,允许的值有:client-auth、server-auth和server-auth-with-rewind
player-movement-score-threshold=20 #允许整数与false,报告异常行为之前所需的数据不一致的数量
player-movement-distance-threshold=0.3 #在检测到异常移动之前,服务端与客户端数值之差
player-movement-duration-threshold-in-ms=500 # 服务端和客户端报告位置的时间长度超时 (在 server-authoritative-movement 选项为"false"时失效)
correct-player-movement=false #如果为"true",则移动值超过阈值,客户端的玩家位置将被校正为服务端玩家的位置
server-authoritative-block-breaking=false #设置玩家在伺服器还是在本地挖方块,false只会将挖掘结果发送给伺服器,true会让伺服器同步玩家挖掘的进度。

更改你伺服器上的各种设置(当然你也可以通过服务端op你自己然后在游戏里更改其中部分世界设定),按下Esc并输入:wq保存并退出。

后台运行

使用screen新建一个ssh窗口。

1
screen -s mc

这个时候屏幕被清空,说明你已经进入新建的ssh窗口了,在新screen窗口里输入刚才的启动命令:

1
LD_LIBRARY_PATH=. ./bedrock_server

确认伺服器正确启动后按下快捷键Ctrl+A+D关闭窗口,之后即使断开SSH连接也不会关闭游戏进程啦。

如果想要再次进入伺服器,在登录为root用户下输入:

1
screen -r mc

即可进入基岩版伺服器控制台,此时可以输入基岩版伺服器指令。按下Ctrl+A+D在保持伺服器运行的情况下安全退出控制台。

更新服务端版本

首先关闭伺服器,然后使用:

1
cd ..

退出到你基岩版伺服器程序运行的档案夹上一级。

随后创建备份档案夹,记下pwd指令输出的路径,并再次回到基岩版伺服器运行目录。

1
2
3
4
5
mkdir mc_backup
cd mc_backup
pwd #记下此时输出的的路径
cd ..
cd mc

将下面四个档案(夹)复制到新档案夹下。

  • permissions.json
  • whitelist.json
  • /worlds
  • server.properties
1
cp -r permissions.json whitelist.json worlds server.properties /home/ubuntu/mc_backup #这里替换成刚才pwd指令输出的路径,

然后检查是否备份成功。

1
2
3
cd ..
cd mc_backup
ll

若显示档案夹内有刚才备份那几个档案则说明备份成功。

从备份档案夹返回,进入基岩版伺服器程序运行的档案夹,删除所有档案。

1
2
3
cd ..
cd mc
rm -rf *

接下来重复前述部署服务端的步骤,下载解压新版本。

最后将刚刚备份的档案还原到基岩版伺服器程序运行的档案夹中,并检查是否还原成功(记得确认日期)。

1
2
3
4
5
6
cd ..
cd mc_backup
cp -r * /home/ubuntu/mc_backup #这里替换成刚才pwd指令输出的路径
cd ..
cd mc
ll

到此教程结束。