轻松搭建现代化 Minecraft 服务器(基础服务篇)


寒假宅家无事可做,何不邀请同学朋友来玩 Minecraft?

meme

本文将简述一台现代化 Minecraft 服务器的搭建配置过程。

(或者直接加入 JBESU.COM 一起玩)

目录

  1. 轻松搭建现代化 Minecraft 服务器(基础服务篇)

  2. 轻松搭建现代化 Minecraft 服务器(进阶插件篇)

需求

  1. 硬件
CPU CoresRamBandwidthScale(Players)备注
12G1M(bit/s)1-2红石、同时处理多区块时基本不可用
24G10M5-8足够同学聚会了,带宽会略微限制TP指令
4+8G+20M+10+可以做公开服务器了

其中第一条是很多云服务提供商的学生机典型配置,一开始我也是用的这样的配置,很卡。还会出现很多不能忍受的 Lag,比如攻击生物等一段时间才能有攻击回馈、右键点一下方块放三个等。

但如果不想花大价钱买高配原价服务器,可以考虑家用机+端口转发/内网穿透的配置。之后会在另一篇文章详解。

本教程使用的机器是 16C32G 的家用机,阅读剩余内容前请允许我喊一声 AMD Yes!

  1. 平台

本文使用 Docker(+Compose) 进行部署与配置,请自行安装配置。

如果想直接在宿主机运行服务器,可以参阅服务端提供方的文档进行设置,随后可以直接阅读下一部分“进阶插件篇

服务后端选择

BackendPerformanceModsPlugins备注
OfficialTerribleNoNo不要用
Spigot(Bukkit)FastNoA Lot快,插件多
Paper(Bukkit)Stupid FastNoA LotSpigot 的 Fork,更快、插件兼容
ForgeTerribleYesNo不要用
FabricTerribleYesNo不要用
Sponge(Vanilla)NiceNoFew不要用
Sponge(Forge)NiceYesFew存在的唯一意义是两个 Bukkit 没 Mod

本文选择 PaperMC 作为服务后端,与 Spigot 一同遵循 Bukkit API。

如果非要在服务器上用 Mod 那就 Sponge(Forge) 吧。

服务搭建

采用 itzg/docker-minecraft-server 镜像进行部署。

下给出 Docker Compose 配置文件:

# File Name: docker-compose.yml
version: '3'

services:
  minecraft:
    image: itzg/minecraft-server
    command: --noconsole
    ports:
      - "25565:25565"
      - "25565:25565/udp"
    environment:
      - TYPE=PAPER
      # 游戏版本,如果想要最大化兼容,截至 Feb, 2020 推荐 1.14.4
      - VERSION=1.15.2
      - TZ=Asia/Shanghai
    env_file:
      - "./minecraft.env"
    volumes:
      - "./data:/data"
    restart: always

./minecraft.env 将储存环境变量对服务器进行配置。

./data 目录将作为 Volume 提供持久化储存,结构如下:

./data
├── plugins
│   └── ... INSTALL PLUGINS HERE ...
├── ops.json
├── server.properties
├── whitelist.json
└── ...

简单配置

我们需要手动创建 ./minecraft.env 进行配置:

OVERRIDE_SERVER_PROPERTIES=true # 启动时使用容器环境变量覆盖服务器 server.properties 配置文件
EULA=TRUE

# Server
# 监听端口
SERVER_PORT=25565
SERVER_NAME="Your Server"
MOTD="Hello World"
# 关卡名称,可通过更改以更换世界
LEVEL=world
# 种子
SEED=1145141919810
# 联网模式正版验证,国内网络环境不好可以关掉,采用插件验证身份
ONLINE_MODE=FALSE
SNOOPER_ENABLED=false


# Rcon
ENABLE_RCON=true
RCON_PASSWORD=password
RCON_PORT=25575

# Load
# 修改至适合需求与硬件
MEMORY=16G
MAX_TICK_TIME=60000
MAX_PLAYERS=16
MAX_WORLD_SIZE=10000
MAX_BUILD_HEIGHT=256
VIEW_DISTANCE=12

# Gameplay
MODE=survival
DIFFICULTY=easy
ALLOW_NETHER=true
ANNOUNCE_PLAYER_ACHIEVEMENTS=true
FORCE_GAMEMODE=true
GENERATE_STRUCTURES=true
ENABLE_COMMAND_BLOCK=true
HARDCORE=false
SPAWN_ANIMALS=true
SPAWN_MONSTERS=true
SPAWN_NPCS=true
SPAWN_PROTECTION=0
PVP=false
ALLOW_FLIGHT=TRUE

# Users
OPS=YourUserName
WHITELIST=YourUserName

其他各项配置不详细解释了,看名字就懂了,不懂的你开这个服务器干啥?

好的,现在执行 docker-compose up -d 命令,服务就已经在后台开始运行了。

一段时间后,实例会完成目录结构、配置文件的初始化等工作并开始工作,你可以连接进行游戏了!

后续内容

当然了,需要一些插件才能当一名合格的服务器管(quan)理(xian)员(gou),具体内容请返回顶部或进入 /tags/minecraft/ 查看系列后续内容。