What do you need
搭建一个 Java Edition Minecraft 服务器所需的东西并不多:
- 一台安装了操作系统并能够运行的电脑
- Java 环境
- MC 服务器资源 (Server Core)
- 一个良好的网络环境 *
- Tmux *
- FRP *
本教程使用的是 ubuntu 22.04 LTS 系统。下面让我们逐步进行。
Java 环境
执行下列指令:
|
|
执行 java --version
验证安装是否成功
MineCraft 服务器配置
服务器下载
MC 服务器种类繁多,这里以 Fabric Minecraft Server Launcher 为例。
Fabric is a lightweight, experimental modding toolchain for Minecraft.
下载服务器资产非常简单,访问 Download Minecraft Server Launcher 界面:
选择 Mincraft 版本,会自动生成资源下载链接,这里以 JE 1.20.1 为例。我们复制 Fabric 下载界面提供的下载指令 curl -OJ https://meta.fabricmc.net/v2/versions/loader/1.20.1/0.14.21/0.11.2/server/jar
至 linux 终端并运行。
会获得一个服务器的 jar 包。接着我们在服务器所在文件夹创建一个服务器启动脚本 vim run.sh
, 将 Fabric 下载界面提供的启动命令 java -Xmx2G -jar fabric-server-mc.1.20.1-loader.0.14.21-launcher.0.11.2.jar nogui
输入,保存并退出。
列举一些 run.sh 可能用到的参数
1. -Xmx?G ? 为服务器最多可用内存
2. -Xms?G ? 为服务器最小占用内存
3. nogui 不启用服务器 GUI
4. -jar 后面为 Server Launcher 的名字,如果强迫症看着默认名字难受修改了的话,启动脚本需要修改
随后我们别忘了给运行脚本执行权限,chomod +x run.sh
。此时我们可以直接运行脚本了 ./run.sh
,启动器会自动下载服务器核心资源,并生成需要的资产。
第一次运行会失败,并且给出下列提示:
这里我们需要去修改刚刚生成的 eula 用户许可文件。ls
查看本地文件发现有一个 eula.txt
, 我们 vim eula.txt
去修改它。
我们将最后一行的 eula=false
改为 eula=true
即可,保存并退出。
此时已经可以连接服务器愉快地玩耍了,但在此之前,我们可能还需要修改一些服务器的配置项。让我们输入 stop
终止服务器运行。我们查看服务器目录下的文件,发现有一个 server.properties
文件,这个就是服务器的配置文件,里面有着非常多的配置项。
关于具体选项的作用,可以查看 Minecraft Wiki 了解更多: Server.properties,这里主要提及几个比较重要的配置项:
|
|
完成配置文件修改后我们再次运行 run.sh
,如果显示以下的画面,恭喜你,服务器成功运行了!
Tmux
当我们在服务器运行时把终端的黑框框关掉时(包括 ssh 的终端),那么服务器也会被直接关闭。显然我们不可能一直开着这个黑框框在电脑上,所以我们需要一些小工具,比如 Tmux。
速通 Tmux
- 执行
sudo apt-get install tmux
安装 tmux。 - 新建会话
tmux new -s <session-name>
。使用tmux ls
浏览会话列表。 - 退出会话
tmux detach
或者ctrl + b
- 接入会话
tmux a -t <session-name>
,tmux a
默认接入上次打开的会话 - 结束会话
tmux kill-session -t <session-name>
Tmux 在搭建服务器时的应用
tmux new -s MCServer
创建一个会话。- 在会话内执行
run.sh
服务器启动脚本。 ctrl + b + d
退出会话,此时即使关闭终端服务器也不会停止运行。
Frp
Frp 是什么?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
关于 Frp 的更多内容,可以查阅官方文档与 Github 仓库。
接下来示范如何将本地运行的 MC 服务器通过 Frp 反向代理到公网上。当然首先你需要一台拥有公网 ip 的电脑/服务器/VPS/路由器。
- 安装 Frp。
- 访问 github 的 Releases,获取所需版本的下载链接。
- 在 Server (公网)和 Client (内网)上分别执行
wget https://github.com/fatedier/frp/releases/download/v0.51.1/frp_0.51.1_linux_amd64.tar.gz
指令下载预编译好的文件。 tar -zxvf frp.tar.gz
解压文件,可以获得如下文件:
- 配置 Frp
- 配置服务端(公网)文件 frps.ini,默认状态下 frps.ini 的内容是这样的。设置了 frp 服务器用户接收客户端连接的端口为默认的 7000。这里我们要记住端口,以及公网的 ip 地址。
- 配置客户端(局域网)文件 frpc.ini。默认状态下 frpc.ini 的内容是这样的:
|
|
我们参考这份样例,先将 frpc.ini 中服务器的地址和接收端口改成自己的,然后在文件后面添加一个 MC 服务器需要使用的配置项:
|
|
- 在公网服务器上开放需要使用到的端口,如 7000, 25565.
- 运行 Frp 反向代理
- 首先在服务器上执行
tmux new -s frps
创建一个 tmux 会话 - 然后在 frp 目录下执行
./frps -c frps.ini
开启 frp 服务端后ctrl + b + d
退出 tmux 会话。 - 在客户端上执行
tmux new -s frpc
创建一个 tmux 会话 - 在 frp 目录下执行
./frpc -c frpc.ini
开启 frp 客户端后ctrl + b + d
退出 tmux 会话。
- 首先在服务器上执行
此时如果服务端和客户端都没有错误信息,那说明反向代理搭建成功,可以通过公网访问内网 MC 服务器了。