# 前言
昨天看到了阿里云的经济型 e 服务器,感觉性价比挺不错的,因此尝试用来搭一台 MineCraft 服务器玩玩,这样用 Curtain 之类的模组挂机很方便。
# VPS 基本配置信息
阿里云经济型 e 服务器购买地址:云服务器 ECS e 实例 - 阿里云 (aliyun.com)
CPU: 2vCPU
RAM: 8GB
SSD: 20GB
Bandwidth: 5Mbps
OS: Debian 12.2 x64
# MineCraft 配置信息
Version: 1.18.2 Java Edition
Mod API: Forge 40.2.10
JDK:OpenJDK 17
# 搭建使用工具
XShell Community + XFTP Community 免费下载地址:XSHELL - The Industry's Most Powerful SSH Client (netsarang.com)
当然其他工具包应该也是完全可以的,MobaXterm 之类的,不过如果只用 PuTTY 之类的简单工具可能在模组传输过程中有点麻烦,这方面个人没研究过。
或许可以试试 FTP 之类的工具,实在不行就用 curl 或者 wget 慢慢下(?)
# 搭建过程
# 安装 OpenJDK
首先通过密钥对或用户名 + 密码的方式,使用 XShell 登录远程服务器。
首先是例行更新一下
apt-get update -y | |
apt-get upgrade -y |
这里以我决定搭建的 MineCraft 1.18.2 JE 为例,它需要 Java 16+,那么我安装 Java 17。
(PS:Java 版本通常而言越高越好,但这并非绝对,例如 1.12.2 及以下的一些版本就只能通过 Java 8 运行,这里需要根据自己的需求来修改)
apt install openjdk-17-jdk |
# Forge 服务端部署
# 获取 Forge 下载链接
打开 Forge 的官方网站 Downloads for Minecraft Forge,找到自己对应游戏版本的 Forge。
这里以 1.18.2 Forge 40.2.10 为例:
右键 Installer,点击复制链接,复制到剪贴板,此时你会得到这样的一条链接:
https://adfoc.us/serve/sitelinks/?id=271228&url=https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.2.10/forge-1.18.2-40.2.10-installer.jar |
此时,你需要把第二个 "https://" 之前的部分去掉,得到这样的一条链接:
https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.2.10/forge-1.18.2-40.2.10-installer.jar |
这就是需要用到的链接
# 安装 Forge 服务端
此时需要写一条下载 Forge 的命令,注意,这条命令根据自己刚才得到的链接来修改:
wget -O installer.jar https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.2.10/forge-1.18.2-40.2.10-installer.jar |
在服务端根目录下创建一个 MineCraft Forge 自己的文件夹吧,这样方便管理,不容易混淆。
当然,你完全可以自己修改到一个想要安装的位置:
cd / | |
mkdir Forge | |
cd /Forge |
下载完成之后,就可以用 Java 运行 Forge 安装包来安装 MineCraft Forge 服务端了:
java -jar installer.jar --installServer |
# 安装模组
新建一个 mods 文件夹,用来存放模组:
mkdir mods |
此时,如果有 XFTP 这样的文件传输工具,你可以直接连接到 VPS,然后直接用 GUI 操作,把本地已经准备好的模组文件都复制到服务端的 / Forge/mods 文件夹当中就可以了。
(注意:最好查一下 MC 百科 或 CurseForge 来确认一部分模组是否有必要在服务端安装。一些 “服务端可选” 的模组安装了也问题不大,但是一些 “服务端无效” 的模组请尽量删除(例如:Rubidium,Oculus 等),否则可能会造成服务器启动失败。)
# 首次启动
# 尝试运行服务端
Forge 1.17 + 自带了这样的一个一键脚本,可以运行 MineCraft 服务端,你只需要启用一键脚本就可以了:
/Forge/run.sh nogui |
Forge 之前版本需要 Java 设置一些参数来启动,这里以 MineCraft 1.12.2 JE Forge 23.5.2859 为例,之后的启动方法同理:
java -jar -Xmx4096M -Xms2048M forge-1.12.2-14.23.5.2859.jar nogui |
(PS:如果你有 Xmanager,那么可以去掉 "nogui",因为 XShell 会自动调用 Xmanager 处理 GUI 的交互部分)
# 同意用户协议
首次启动会失败,然后创建一个 eula.txt 文件,这是用户协议,我们必须同意协议才能进行游戏。
我们可以用各种文本编辑器来修改它,nano、vim 都可以。这里以最简单的 nano 为例:
nano eula.txt |
此时就进入了 eula.txt 的编辑界面:
通过上下左右键可以操作光标,只要把 false 改成 true 就可以了,代表同意用户协议。
然后 Ctrl+X 退出,Y 保存修改,回车,这样就保存了更改。
# 第二次启动
# 尝试运行服务端
现在可以第二次运行 MineCraft 服务器了,这会生成一个世界,加载模组资源,并初始化所有配置文件:
/Forge/run.sh nogui |
如果启动失败,那么基本上有两种原因。如果显示 killed,那么是服务器资源不足,如果显示大量的报错信息,那么基本可以确定是模组冲突。
# 资源不足
# 1.17+
可以尝试调整 user_jvm_args.txt 文件中的配置,把内存拉低一些,但是通常而言最好不要低于 1G。
# 1.17-
可以尝试调整运行参数,把运行参数降下来。因为一般而言 killed 都是内存不足导致的。
# 报错信息
阅读红色的报错日志,看看究竟是什么模组出问题了,是什么模组之间发生冲突了。
然后进入 mods 文件夹,通过 rm 指令删除对应的模组即可,有 XFTP 的可以通过图形化界面来操作,更容易。
# 退出 修改服务端配置文件
世界生成完毕后,个人的建议是先退出:
/stop |
此时你可以检查一下目前的 / Forge 文件夹,发现创建了很多文件:
ls |
可以尝试修改一下服务端配置文件,定制化你的游戏体验,这一部分不详细赘述:
nano server.properties |
# 正式启动
# 使用 Screen 分屏功能 在后台运行 MineCraft
个人推荐使用 screen 分屏功能来简单地管理 MineCraft 服务器,这样只需要后台挂一个窗口就行,期间服务器可以做别的事情。
安装 screen:
apt install screen |
使用 screen 进行分屏操作(示例,分屏名称完全可以自选):
screen -S Forge |
运行 MineCraft 服务端:
/Forge/run.sh nogui |
退出分屏:
Ctrl + A + D
# 管理之前的分屏
查看现有分屏:
screen -ls |
恢复上一次的分屏会话:
screen -r |
恢复特定的分屏会话(示例,选择你自己想要进入的那个分屏):
screen -r Forge |
至此,MineCraft Forge 服务端搭建过程已经完成。
# 配置防火墙规则
# 云服务供应商控制台
个人使用的服务器为阿里云,这类云服务厂商提供单独的安全组 / 防火墙策略。需要在控制面板上找到安全组,手动添加一条 TCP 规则。
端口默认是 25565,如果你修改过 server.properties 文件,那么请根据你自己设置的端口号开放端口访问权限。
# UFW 等内置防火墙
如果你的服务器没有控制台的防火墙规则,你又不希望把所有端口全部开放,那么可以尝试使用 ufw 这样的简单防火墙工具。
首先检查一下 ufw 是否安装好了:
apt install ufw |
然后开放 ufw 的几个关键端口:
(PS:请一定要确认 SSH 端口是不是默认的 22,有些云服务供应商不是的,别一个防火墙把自己的 SSH 连接给掐断了)
(PS:这里的 25565 端口也是 MineCraft 默认的服务器端口,如果改过 server.properties 文件,还是要根据自己的设置来调整)
ufw allow ssh | |
ufw allow 25565 |
启用 ufw 防火墙:
ufw enable |
简单检查一下防火墙的运行状态:
ufw status |
# 客户端连接 MineCraft 服务器进行游玩
# 关于模组兼容
根据个人经验,客户端模组和服务端模组是这样的关系:
如果某个模组要求客户端需装,服务端需装,那么客户端和服务端必须同时安装这个模组。(此类模组多为内容模组,例如世界生成、科技、魔法、农业等)
如果某个模组要求客户端需装,服务端可选,那么通常而言,客户端安装这个模组即可。(此类模组多为辅助模组,例如操作、面板、管理、地图、优化等)
如果某个模组要求客户端需装,服务端无效,那么最好不要在服务端安装这个模组。(此类模组多为深度优化模组,例如 Rubidium, Sodium, Oculus, Iris)
# 客户端连接方式
打开游戏,多人游戏,添加服务器。
输入备注,服务器 IP 地址、端口即可。不填端口的话就会尝试连接默认的 25565 端口。
提示模组不兼容很正常,这通常是因为客户端和服务端优化模组等差异造成的。此时不要直接放弃,一定要尝试连接一下。如果有一些模组不匹配,通常会收到一些信息,那么你可以在服务器后台或者客户端安装一些模组来补全。大多数情况下,就算模组列表不匹配,还是可以游玩的。
# 结语
至此,一台可运行的 MineCraft Forge 服务器已经搭建完成并上线运行。
个人水平有限,应该还有很多没有讲到的地方,之后如果发现了也会尝试补充完善。
本教程比较依赖 XShell / XFTP 工具包,因此操作中出现很多 “偷懒” 的地方。
希望这篇文章能对想要自建 MineCraft Forge 服务器的用户有所帮助。