CentOS搭建mc服务器(screen和docker两种方式)


环境与文件准备

vps控制台设置安全组

端口范围:25565/25565
授权对象:0.0.0.0/0

获取mc服务端文件

前往下载页面获取服务端文件

常规 screen 启动方式

安装Java环境

此处不细讲,注意下 mc 版本对 java 版本的要求

存放服务端文件

在任意位置下新建 minecraft 文件夹,将服务端文件放入(位置和文件夹名可自定义)

执行服务端文件

1
java -Xmx1024M -Xms1024M -jar server.jar nogui
  • -Xmx1024M:最大分配内存
  • -Xms1024M:最小分配内存
  • server.jar:服务端文件名
  • nogui:无图形化界面(linux建议带上)

同意协议

上一条执行后会报错,原因为需要同意协议,此时项目中生成了 eula.txt 文件
vim查看修改

1
vim eula.txt

将最后一行 eula=false 修改为 true,即为同意协议

再次执行服务端文件

1
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.5.jar nogui

服务器运行成功,客户端输入服务器端口可以搜到服务器,但进入时报错验证失败无法进入,原因是存在正版验证

关闭正版验证

ctrl + c 停止服务器
vim 查看修改 server.properties 文件

1
vim server.properties

找到 online-mode,修改为 false,这条语句为是否进行正版验证
*该文件为服务器配置文件,最大人数、能否pvp、游戏模式等均在此配置,具体属性详见这里

再次执行服务端文件

1
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.5.jar nogui

客户端即可通过服务器 ip 进入游戏了

存储启动命令

通过 vim 新建一个bash脚本 startMinecraft.sh

1
vim startMinecraft.sh

编写文件内容,将启动代码输入

1
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.5.jar nogui

:wq 保存退出 下次启动只需要执行 /opt/minecraft/startMinecraft.sh 即可

保持服务端运行

事实是,当退出 ssh 控制台时,服务端也就停止了,可以通过 screen 来使其保持运行状态

安装 screen

1
yum install screen

开启一个 screen 会话

1
screen -S mc

ssh界面跳了下,即为成功

启动mc服务端

执行 bash 脚本

1
/opt/minecraft/startMinecraft.sh

启动成功,退出 ssh,服务端仍在运行

备注

screen 为多重视窗管理程序,可通过 screen -r 会话名称,来回到并操作正在运行的视窗
screen 的其他指令可参考这里

docker 启动方式

需要服务器安装 dockerdocker-compose,安装方式见百度

准备文件

在任意目录新建 minescrift 文件夹,将服务器文件放入其中,并新建 Dockerfiledocker-compose.yml 两个文件

Dockerfile 内容

1
2
3
4
5
6
7
8
9
10
11
FROM openjdk:17.0.2-oracle

ENV LANG en_US.utf8

RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

COPY . /minecraft

WORKDIR /minecraft

CMD nohup sh -c "java -Xmx1024M -Xms1024M -jar server.jar nogui"

docker-compose 内容

1
2
3
4
5
6
7
8
9
10
11
12
version: "3.7"
services:
minecraft:
build:
context: .
image: minecraft:latest
ports:
- 25565:25565
container_name: minecraft-1.19.1
restart: always
volumes:
- ./:/minecraft

启动服务器

在当前目录下直接执行如下指令即可启动服务器

1
docker-compose up -d

若正常启动,当前目录下将会生成一批文件
按照前面常规启动中的操作分别 同意协议关闭正版验证 后试用下方指令重启容器即可正常使用

1
docker-compose restart