前言
最近和基友心血来潮想重温下 mc 。但是实在是不想玩网易版的。于是又萌生出了部署个简易服务器的想法,在讨论后整理出了如下需求:
- 要玩 mc 的最新版本(写下本文时是1.14.3)。
- 完全纯净,不要任何
mod
。 - 要有光影。
目标
服务端
- 新建一个
Ubuntu 18.04
的虚拟机。 - 使用
docker
进行部署,方便管理。 - 使用 NAT地址转换 模式的网卡转发端口到本机端口。
- 基友通过局域网访问本机端口加入游戏。
客户端
- 客户端使用
HMCL
安装游戏。 - 安装
Optifine
来使用光影。
至于为什么不直接在自己的 windows 里用docker
部署 mc。是因为我觉得这样部署了之后以后想上云会比较简单,而且直接在 windows 里用 docker 的话也会启动一个轻量级linux
虚拟机,感觉还是自己建虚拟机用起来更舒服。ok,接下来就开始动手。
服务端部署
如何部署一个ubuntu
服务器这里就不再赘述,非常简单,具体可以参考 unbuntu server 虚拟机安装全攻略 。然后就是安装docker
,执行如下命令即可,请确保自己已经完成了apt
换源,不然会很慢:
apt install docker.io
安装完成后docker -v
查看版本,我安装的是18.06.1-ce
。docker
安装完了之后要先换源。先执行如下命令更换国内源:
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://quay-mirror.qiniu.com"
]
}
EOF
然后输入如下命令重启docker
即可
systemctl daemon-reload && \
systemctl restart docker
安装 mc 服务器
基础准备好了之后我们就可以开始安装mc
的服务端了,得益于docker
的高封装性。我们可以直接下载一个可用的完整服务器。这里用的服务器镜像是 itzg/minecraft-server ,这个是目前下载次数最高的 mc 镜像,可以任意指定游戏版本。输入以下命令来 下载镜像 并 新建一个文件夹用于保存 mc 服务器文件:
# 拉取镜像
docker pull itzg/minecraft-server
# 新建游戏保存文件夹
mkdir /home/mc-server
等待下载完成之后输入以下命令来运行服务器:
docker run -d \
-p 25565:25565 \
-e EULA=TRUE \
-e VERSION=1.14.3 \
-v /home/mc-server:/data \
--restart always \
--name mc itzg/minecraft-server
解释一下参数的意思:
参数 | 含义 |
---|---|
-d |
后台运行容器 |
-p 25565:25565 |
将容器的25565 端口(: 后)映射到主机的25565 端口(: 前) |
-e EULA=TRUE |
同意EULA 协议 |
-e VERSION=1.14.3 |
指定服务器的版本 |
-v /home/mc-server:/data |
将主机的/home/mc-server 目录挂载到容器的/data 目录 |
--restart always |
容器一旦停止立刻重启 |
--name mc |
指定容器名为mc
|
然后使用如下命令即可查看 mc 服务器的状态
docker ps
可以看到后面的STATUS
状态表明服务器正在启动(health: starting)
,第一次启动可能会久一点,待其变为(healthy)
时即代表服务器启动成功。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb0a7ef02dca itzg/minecraft-server "/start" 5 seconds ago Up 3 seconds (health: starting) 0.0.0.0:25565->25565/tcp, 25575/tcp mc
这时候再访问/home/mc-server
文件夹就发现,里边已经是一个完整的 mc 服务器包了。编辑其中的server.properties
即可修改服务器的配置。具体配置项含义请参考 MC中文wiki - server.properties 。修改完成后:wq
保存,然后执行如下命令即可重启服务器应用修改:
docker restart mc
至此服务端已经搭建好了,但是现在游戏服务只开放在虚拟机的25565
端口上,我们来改一下virtalBox
的配置,把虚拟机的对应端口映射到自己的电脑上。依次点击虚拟机的 设置 > 网络 > 网卡1 > 高级 > 端口转发 > 右边新增按钮 来新建端口转发,如下:
这样虚拟机的25565
端口就转发到了自己电脑上的25565
端口,我们打开 mc 访问127.0.0.1:25565
就可以连上服务器了。接下来来安装 mc 客户端。
安装 mc 客户端
这里要下载如下四个东西,如果你不想麻烦的话直接下载我准备好的压缩包,改个名字就能玩,下载地址: 百度网盘 提取码: nvoq
软件 | 作用 | 下载地址 |
---|---|---|
java | 运行 HMCL 启动器及 mc | 下载 |
HMCL 启动器 | 下载并管理游戏本体 | 下载 |
optifine | 光影的前置插件 | 下载 |
光影包 | 我用的是 Slidur's Shaders 这个随意 |
下载 |
java
的安装非常简单这里也不说了,一路确定下来就行。然后启动HMCL
,点击 游戏列表 > 安装新游戏版本 > 选择自己想玩的版本,我这里是1.14.3
。等待下载完成后会自动安装,等提示安装成功后即可。
安装光影
要想使用光影的话就要先安装前置插件optifine
。点此 OptiFine - Download 下载optifine
,注意选择对应版本。注意,点击下载会先跳转到一个广告页面,注意规避。这里我使用HMCL
安装optifine
时虽然可以安装成功,但是启动游戏时会报错,所以只得手动下载安装。
下载完成后应该是一个名如OptiFine_1.14.3_HD_U_F1.jar
的文件。直接运行,在打开的窗口中选择你游戏安装的.minecraft
目录点击Install
即可。一会后会弹出安装成功。
安装好了之后打开.minecraft\shaderpacks
文件夹,将你下载好的光影包放进去即可。如果你没有这个文件夹的话可以新建一个,或者启动游戏,依次点击 选项 > 视频设置 > 光影 > 光影包文件夹 也可以打开。记得在启动器里选择optifine
版本的 mc。它默认是启动原版的。
然后启动游戏选择光影包即可。
加入游戏
因为虚拟机就跑在我的电脑上,所以我直接用127.0.0.1:25565
就可以连接服务器,然后在cmd
里用ipconfig
获取我电脑的局域网 ip。然后交给基友,就可以愉快的开黑啦。
问题解决
unknow host:如果显示未知主机的话检查你的:
是不是用的中文冒号。
连接超时:一共需要做两次端口转发,docker
转发到虚拟机 和 虚拟机转发到本地主机。确保都做好了。
服务器状态显示旧版:刷新几次就好了,或者直接连.