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
相关推荐
中云DDoS CC防护蔡蔡1 小时前
微信小程序被攻击怎么选择高防产品
服务器·网络安全·微信小程序·小程序·ddos
HPC_fac130520678162 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
梓仁沐白3 小时前
ubuntu+windows双系统切换后蓝牙设备无法连接
windows·ubuntu
yaoxin5211233 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
sinat_384241097 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
Kkooe8 小时前
GitLab|数据迁移
运维·服务器·git
虚拟网络工程师10 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb
BLEACH-heiqiyihu10 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
勤奋的小王同学~11 小时前
项目虚拟机配置测试环境
服务器
007php00711 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang