朋友想要玩minecraft,由于我这边正好有群晖,和电信的公网ip所以索性用群晖的docker创建个minecraft的服务服务器,和朋友联机
以下是搭建minecraft服务器外网的要求
1、公网ip
2、域名
3、一个支持ddns的路由器
4、可以运行docker的服务器
一、docke创建容器
下面操作都是在群晖中完成

打开群晖的docker
选择项目,点击左上角新增,设置项目名称、存储地点、来源选择创建yml文件
输入下列参数
services:
minecraft:
image: itzg/minecraft-server
container_name: "MCServer"
ports:
- "25565:25565"
volumes:
- "/volume1/docker/mcserver:/data" # 主要数据,包括存档数据等
environment:
SERVER_NAME: "MCServer"
EULA: "TRUE"
VERSION: "1.20.4" #(游戏版本号)
TYPE: "FABRIC" # Fabric 游戏mod版本
CONSOLE: "false" #某些旧版本(1.14 之前)的 Spigot 在分离 stdin 时需要传递
ENABLE_RCON: "true" #启用/禁用 RCON 支持
RCON_PASSWORD: "mcserver"
RCON_PORT: 28016
INIT_MEMORY: 1G # 初始内存大小
MAX_MEMORY: 8G # 最大内存限制
OVERRIDE_SERVER_PROPERTIES: "true" #自定义服务器属性,
SNOOPER_ENABLED: "false" # 统计数据
VIEW_DISTANCE: 8 #加载区块范围,默认 10,建议 4~8
SEED: "-505794890" # 初始生成世界的种子
PVP: "true"
ONLINE_MODE: "FALSE" #正版校验开关
ALLOW_FLIGHT: "FALSE" #允许用户在生存模式下在您的服务器上使用飞行
USE_AIKAR_FLAGS: "true" # G1GC优化参数
TZ: "Asia/Shanghai" # 设置时区
restart: unless-stopped
rcon:
image: itzg/rcon # 服务器远程管理面板,具体使用自行百度
container_name: "RCON"
depends_on:
- minecraft
ports: #这两个端口都需要防火墙放行
- "3000:4326" # Web UI
- "4327:4327" # Connection from Web UI
volumes:
- "/volume1/docker/mcrcon:/opt/rcon-web-admin/db"
environment:
RWA_ENV: "TRUE"
RWA_ADMIN: "TRUE"
RWA_PASSWORD: "mcadmin"
RWA_RCON_HOST: "MCServer"
RWA_RCON_PASSWORD: "mcserver" # RCON server to control
RWA_RCON_PORT: 28016
restart: unless-stopped
这里我选择的游戏版本是java的minecraft 1.20.4 FABRIC mod版本,可以装mod,
你需要修改的有
1、/volume1/docker/mcserver:/data
/volume1/docker/mcserver需要你改成你自己想要存放mc服务器数据的路径
2、/volume1/docker/mcrcon:/opt/rcon-web-admin/db
/volume1/docker/mcrcon需要你改成你自己想要存放RCON数据的路径
其他关于游戏版本号、游戏的mod版本
内存的设置大小、地图的种子、G1GC优化参数,根据你的实际需求和情况来选择即可
如果你的机器配置比较低可以参考如下进行修改
INIT_MEMORY: 1G # 初始内存大小设置成1G MAX_MEMORY: 2G # 最大内存限制设置成2G USE_AIKAR_FLAGS: "false" # 关闭优化
JVM_OPTS:-XX:+UseSerialGC #设置成SerialGC回收,此项需要你手动添加到环境变量设置里
详细的参数说明,请看官方文档Minecraft Server on Docker (Java Edition) (docker-minecraft-server.readthedocs.io)
修改完成创建后,容器会有两个镜像运行

看到点开mcserver,查看日志

看到下面的日志,即表示服务器创建运行成功
二、pc端下载启动器和启动游戏
这个时候来到你的pc客户端界面,下载HMCL的mc启动器hmcl.huangyuhui.net/download/
如果你没mc的客户端,需要下载一下对应的1.20.4客户端,然后创建一个离线账户

点击启动

点击多人游戏

服务器地址填写你的群晖ip地址+端口号,比如我的群晖地址是192.168.173,加上上面的docker映射的25565端口,那这个地方就应该输入192.168.173:25565
如果你想要和朋友外网联机,你需要在路由器上配置你的动态ddns,具体请百度,教程很多。然后只需要在路由器的防火墙转发wan的25565端口到群晖即可
三、mod的安装和使用
如果你使用了和我一样的参数,想要添加mod,可以在docker映射的mc服务器的data目录下的mods文件夹下添加,然后重启mcserver容器即可,
mod的下载网址是Search mods - Modrinth,下载版本请选择1.20.4 FABRIC,不要选错了,
注意,有些mod是只需要在服务器端装,有些是装在客户端,有些是服务器端和客户端都要装,注意分辨
我发下我的mod安装路径演示一下,服务端安装的页面展示

客户端安装的展示

大功告成拉!