Ubuntu 环境配置 Minecraft 基岩版服务器

文章目录


Part 1 搭建服务器

  1. 更新软件包信息
shell 复制代码
sudo apt-get update
sudo apt-get upgrade
  1. 安装所需工具
shell 复制代码
sudo apt-get vim
sudo apt-get install zip
sudo apt-get install unzip
sudo apt-get install libcurl4-openssl-dev
  1. 创建文件夹
shell 复制代码
# 切换到工作目录
cd entertainment/
# 创建服务器文件存放目录
mkdir minecraft
cd minecraft
  1. 下载服务器安装文件
  • 回到终端
shell 复制代码
# 将 <SERVER_DOWNLOAD_LINK> 替换为具体的下载链接
wget <SERVER_DOWNLOAD_LINK>
  • 解压缩服务器文件
shell 复制代码
unzip <SERVER_FILENAME>
  • 检查解压成功的文件
shell 复制代码
ls -alh
  • 删除压缩包(可选)
shell 复制代码
rm <SERVER_FILENAME>
  1. 创建启动文件
shell 复制代码
vim startmc.sh
  • 在文件中写入服务器启动指令:
shell 复制代码
LD_LIBRARY_PATH=. ./bedrock_server
  • 按下 Esc 退出编辑模式,输入 :wq 保存并退出 Vim
  1. 启动服务器
shell 复制代码
sh ./startmc.sh
  • 如果提示没有执行权限 bash: ./bedrock_server: Permission denied
shell 复制代码
# 赋予权限
chmod +x ./bedrock_server
# 然后再次尝试启动服务器
sh ./startmc.sh
  1. 启动成功
  • 按下 Ctrl + C 停止服务器

Part 2 配置服务器

  • 服务器文件中比较重要的有:
shell 复制代码
server.properties 服务器属性文件
permissions.json 玩家权限文件
allowlist.json 玩家白名单文件
worlds/ 存放地图存档的目录
  1. 查看 server.properties 服务器属性文件
shell 复制代码
vim server.properties 
  • 常用的属性有:
属性名 默认值 描述
server-name Dedicated Server 服务器名,即服务器列表中显示的名称,名称里不能带有分号
gamemode survival 游戏模式,合法值有:survival(生存)creative(创造)adventure(冒险)
difficulty easy 游戏难度,合法值有:peaceful(和平)easy(简单)normal(普通)hard(困难)
allow-cheats false 启用作弊,合法值为 true 或 false
max-player 10 玩家数量上限,值必须为正整数
allow-list false 启用白名单,如果为 true 将只允许 allowlist.json 文件里的玩家连接服务器
server-port 19132 服务器端口号
view-distance 32 视距,允许玩家游戏加载的最大区块,数值应当大于等于 5
player-idle-timeout 30 自动踢出玩家时间,值必须为非负整数(单位:分钟)
level-name Bedrock level 地图名称,名称里不能带有分号且应当可以作为合法的文件名
level-seed 地图种子,用来随机生成地图,值可以为任意字符串
default-player-permission-level member 默认玩家权限,新玩家加入服务器的权限,合法值有:visitor(访客)member(成员)operator(管理员)
  1. 地图管理
  • 进入 worlds 目录,可以发现文件夹里有一个目录 'Bedrock level' ,因为在 server.properties 文件里设定了 level-name (地图名称)为默认值 Bedrock level

  • 当修改 server.properties 文件中 level-name 为别的名称后,重启服务器, worlds 目录里就会出现新的相应目录:

  • 说明服务器里有两个地图存档。启动服务器的时候,服务器会运行名称为 level-name 属性值的地图存档,如果地图存档在 worlds 目录里不存在,则会新生成一个名为 level-name 属性值地图存档。

  • server.properties 中有两个属性是与新地图生成有关的:

属性名 默认值 描述
level-type 地图类型,合法值有:DEFAULT 默认(无限)FLAT(平坦)LEGACY 传统(有限)
level-seed 地图种子,合法值为任意字符串
  • 注意:
    • level-type 并非 server.properties 文件里原本就有的属性,你可以在任意行处添加这个属性。如果属性值为 DEFAULT 则无需添加。
    • 你需要在创建新世界(启动服务器)之前设置好这两个属性,两个属性无法作用于已经生成好的地图存档。
  1. 修改 gamerule
  • 在服务器窗口输入 gamerule ,可以查看全部规则
shell 复制代码
gamerule <属性名> <属性值>
  • 常用属性
shell 复制代码
# 开启死亡不掉落
gamerule keepinventory true
# 显示坐标
gamerule showcoordinates true
  1. 权限控制
  • 通过设置 server.properties 里的 default-player-permission-level 属性来确定新加入服务器的玩家的权限。
    • 该属性不会对已经加入服务器的玩家发生作用。
  • 如果有玩家连接进来或者退出了服务器,你可以看到类似的消息通知:
shell 复制代码
# 这里 connected 后对应的是玩家的 Xbox 账号名,而 xuid 后为账号对应的唯一 ID 
[INFO] Player connected: <玩家名>, xuid: <xbox id>
[INFO] Player disconnected: <玩家名>, xuid: <xbox id>
  • 指定玩家权限
    • 方法一: opdeop
      • 在服务器程序上执行 op <玩家名>deop <玩家名> 来 赋予 或 撤销 指定玩家的管理员权限,所指定的玩家必须在线。
    • 方法二:设置 permissions.json 文件,修改完成后需重启服务器生效
      • 通过 vim permissions.json 打开属性配置文件
      • 每个权限信息都有两个必填的属性:
        1. "permission" 玩家权限,合法值有:visitor(访客)member(成员)operator(管理员)
        2. "xuid" 玩家的 Xbox 账号 ID
      • 参考下列格式修改:
shell 复制代码
[
    {
        "permission": "operator",
        "xuid": "451298348"
    },
    {
        "permission": "member",
        "xuid": "52819329"
    },
    {
        "permission": "visitor",
        "xuid": "234114123"
    }
]

Part 3 管理服务器

一、手动备份服务器

  1. 在服务器文件夹外新建备份文件存放目录
shell 复制代码
cd ..
mkdir minecraft_backup
  1. 创建备份文件
shell 复制代码
vim backup_newest.sh
  • 在文件中写入备份指令:
shell 复制代码
cd ./minecraft
cp -r permissions.json allowlist.json worlds server.properties ../minecraft_backup
ls ../minecraft_backup
  • 按下 Esc 退出编辑模式,输入 :wq 保存并退出 Vim
  1. 启动备份文件
shell 复制代码
sh ./backup_newest.sh
  1. 成功显示四个备份文件表示备份成功

二、手动恢复服务器备份

  1. backup_newest.sh 同级目录创建备份恢复文件
shell 复制代码
vim recover_backup.sh
  1. 在文件中写入备份恢复指令:
shell 复制代码
cd ./minecraft_backup
cp -r * ../minecraft
ls -alh ../minecraft
  • 按下 Esc 退出编辑模式,输入 :wq 保存并退出 Vim
  1. 启动备份恢复文件
shell 复制代码
sh ./recover_backup.sh
  1. 检查四个备份文件日期,若为最新日期表示备份恢复成功

三、升级服务器

  • 升级服务器共分四个步骤:

    • 将重要文件备份到服务器目录外
    • 删除服务器目录内所有文件
    • 下载并解压缩新版本服务器文件
    • 还原备份
  • 注意:升级服务器之前请关闭你的服务器,避免不必要的损失。

  1. 备份重要文件
shell 复制代码
sh ./backup_newest.sh
  1. 删除服务器目录内所有文件,注意:一旦删除就无法恢复了
shell 复制代码
# 进入你的服务器目录
cd ./minecraft
# 删除目录内的所有文件,注意:一旦删除就无法恢复了
rm -rf *
  1. 下载新的服务器文件
shell 复制代码
# 进入你的服务器目录
cd ./minecraft
# 将 <SERVER_DOWNLOAD_LINK> 替换为具体的下载链接
wget <SERVER_DOWNLOAD_LINK>
  1. 解压缩服务器文件
shell 复制代码
unzip <SERVER_FILENAME>
  1. 删除压缩包(可选)
shell 复制代码
rm <SERVER_FILENAME>
  1. 还原备份
shell 复制代码
sh ./recover_backup.sh
相关推荐
厨 神2 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0662 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen012 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
(⊙o⊙)~哦3 小时前
linux 解压缩
linux·运维·服务器
贩卖纯净水.4 小时前
白月光git
git·github
鸡鸭扣5 小时前
虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通
linux·运维·ubuntu
友友马5 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
重生之我在20年代敲代码6 小时前
HTML讲解(一)body部分
服务器·前端·html
清水白石0086 小时前
C++使用Socket编程实现一个简单的HTTP服务器
服务器·c++·http
GG_Bond196 小时前
【项目设计】Facial-Hunter
服务器·人工智能