大家平时在玩 MC 的时候,不知有没有过开个服务器和外地的朋友们一起联机的想法?MC 公网联机的方法有很多,但是无论如何都需要用来开服的机器能够在公网被访问到,即能够提供一个公网 IP。本篇教程将介绍一种比较简单的获得公网 IP 的方式,即使用云服务器,来建立 MC 服务器。
1 购买并登入云服务器
目前市面上可供选择的云服务器商家有很多,比如阿里云、腾讯云、华为云等等,大家可以根据这几家的价格来进行对比选择。
对于一个 5 人以下,mod 很少的小型的服务器而言,一个 1 核 1 G或者 1 核 2 G 的服务器一般够用。较大一定的 mod 服推荐至少 2 核 4 G。
购买服务器并 SSH 链接的教程这里我就不赘述了,大家从任何一个搜索引擎上都能够搜索到大量的教程。这里只提几点:一是如果大家是 24 岁以下,可以去各大厂商看一下学生优惠机;二是购买时一定要选择 x86 架构处理器并且系统选择 Linux 系统(例如 CentOS、Ubuntu);三是进行 SSH 链接的软件推荐使用 MobaXterm。
2 必要的准备工作
2.1 更新系统并建立文件夹
如果你拿到的是一个新的云服务器,那么就先更新一下系统吧。
Ubuntu 系统下的命令:
apt-get update # 更新仓库列表
apt-get upgrade # 更新软件
CentOS 系统下的命令:
sudo yum update # 更新软件
随后切换到你想用来存放 MC 服务器的目录(这里假设为 home 目录),并建立一个名为 Minecraft 的文件夹。
cd ~ # 切换到 hmoe 目录
mkdir Minecraft # 建立 Minecraft 文件夹
2.2 安装 Microsoft 内部版本 OpenJDK
2.2.1 下载 OpenJDK 17
1.18.2 版本的 MC 好像必须要用 Microsoft 的内部版本的 java,我也不知道为什么,反正装这个肯定没问题就是了。
Microsoft 的内部版本的 java 可以在这个网站下载:网站链接,下载时需要选择 Linux 版本的 OpenJDK 17,如下图:
下载好后,用你熟悉的任何方式(如 ftp)将其上传到这台云服务器上。如果所有方法你都不熟悉,那么你可以选择使用 MobaXterm 的上传功能,如下图:
或者也可以选择直接使用 wget 命令下载,这样可以免去上传步骤,具体命令如下:
cd ~ # 切换到 home 目录
wget https://aka.ms/download-jdk/microsoft-jdk-17.0.3-linux-aarch64.tar.gz # 下载 java
2.2.2 安装 OpenJDK 17 并设置环境变量
解压上一步下载到的压缩文件,并将其移动到 /usr/local
目录下:
tar zxvf microsoft-jdk-17.0.3-linux-aarch64.tar.gz # 解压下载的 java 文件
sudo mv jdk-17.0.3+7 /usr/local # 将解压后的文件移动到 /usr/local 目录下
注:如果你当前登录的用户为 root
用户,则不需要加 sudo
。
移动好后,接下来需要设置环境变量,才能使得 java 的安装生效。配置前可以先将原有的环境变量备份一遍:
sudo cp /etc/profile /etc/profile.bak # 备份环境变量
使用 sudo vim /etc/profile
命令编辑环境变量,将光标移动到最后一行,并使用 i
键进入输入模式,插入下面这三行:
# java meaaage
export JAVA_HOME=/etc/java/jdk-17.0.3+7
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
按 esc
键推出输入模式,并输入 :wq
命令保存并退出。此时,输入 source /etc/profile
命令更新一遍环境环境变量后,输入 java -version
命令,如果有如下输出,则说明 java 安装成功(不同版本的安装完成后显示的结果可能有所不同,本人这里显示的是系统上以前安装过的 java 版本):
openjdk version "17.0.2" 2022-01-18 LTS
OpenJDK Runtime Environment Microsoft-30338 (build 17.0.2+8-LTS)
OpenJDK 64-Bit Server VM Microsoft-30338 (build 17.0.2+8-LTS, mixed mode, sharing)
3 MC 服务器搭建
3.1 下载 forge 整合包
forge 服务器的一个好处是在开服时能够使用服务器端 mod。可以在 forge 官网下载 forge 整合包。下载时需先通过右侧栏选择正确的 MC 游戏版本,随后即可下载 forge。一般下载最新的稳定版即可,如下图:
这里下载速度可能会比较慢,需要多等待一会。下载好后,就可以将其上传到上文中建立的 Minecraft
文件夹中去了。
3.2 forge 整合包安装
下载好后,就可以进行安装了。下面的命令将以本人服务器上的 forge 版本为例,大家在安装时请注意替换。
首先第一步是先要使用 installer 来跑一遍下载的这个文件,以下载一些必要的文件出来:
java -jar forge-1.18.2-40.0.41-installer.jar nogui --installServer
此时 forge 服务器会开始自动下载安装。这个过程的时间会根据大家当地的网络条件的不同而不同,甚至可能会非常缓慢,大家可能需要耐心等待。直到出现这两行的文字,即代表安装成功:
The server installed successfully
You can delete this installer file now if you wish
这时,你的 Minecraft
文件夹中可能会出现这样一些文件:
.
├── forge-1.18.2-40.0.41-installer.jar.log
├── libraries
├── run.bat # forge 启动脚本(Windows)
├── run.sh # forge 启动脚本(Linux)
└── user_jvm_args.txt
3.3 运行 forge 服务器
3.3.1 修改内存限制
在前面安装好服务器后,即可进行启动了。在启动之前,一个比较关键的步骤就是合理的设定服务器运行所用的内存大小,以使得服务器能按照自己希望的内存数额去进行运行。
在前面下载安装服务器的过程中,会下载一个叫做 user_jvm_args.txt
的文件。这个文件就可以用来设置服务器占用的内存的大小。首先打开该文件:
sudo vim user_jvm_args.txt # 打开内存限制文件
打开该文件后,即可在里面限制服务器所占用的内存的大小。该文件里面有一些注释形成的使用说明,大家可以通过阅读这个说明来了解如何应用。这里举一个例子:例如我想把服务器的内存限制为最小为 512 M,最大为 1 G,则该文件可以写为:
# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M
-Xms512M -Xmx1G
# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
# -Xmx4G
3.3.2 运行 forge 服务器
使用该命令,即可运行一次 forge 服务器:
bash run.sh
这时大家运行完会发现,运行被停止了。这是由于第一次运行会产生一个用户协议文件,大家需要同意这个文件才能正常运行服务器。同意的方法为:使用 vim
打开 eula.txt
文件,并将其中的 false
改为 true
。
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Tue Apr 26 00:00:30 CST 2022
eula=true
改好后,再运行一次,就可以跑起来了。
3.3.3 安全组放行端口
现在各大厂商的云服务器或者轻量应用服务器都有安全组这一个设定,这个安全组会对一些服务器端口的流量进行限制。MC 默认的服务器端口一般为25565,如果大家想进入 MC 服务器,需要在安全组里面提前放行端口,如下图:
各大云服务器厂商的安全组放行端口的方法大家可以自行搜索;但是大家一定要记得进行这一步,不然无法进入 MC 服务器。
(注:如果你的服务器在系统内开启了防火墙,此时除了安全组放行端口外,还需要在系统内防火墙处放行端口。)
3.3.4 启动 MC 并进入服务器
服务器启动并且正确的设置好安全组后,就可以启动游戏客户端并进入服务器进行玩耍了。打开 MC 客户端后选择多人游戏,然后选择添加服务器,在「服务器地址」输入框中输入大家的云服务去器的公网 IP 地址,就可以愉快的进入服务器玩耍了。
4 设置域名访问
4.1 注册一个域名
要域名访问,首先你得要注册一个域名。注册域名的厂商可以选择腾讯、阿里、华为等各大服务商。购买并注册域名得流程大家同样可以在各大搜索引擎中找到,这里本人就不赘述了,并假设大家已经注册好了域名。
4.2 设置 A 记录
大家在注册域名之后,进入域名的解析控制台,并选择添加记录集,先添加一个 A 记录,即将一个域名指向一个 IP 地址。
其中主机记录就是大家的域名的前面的那一段,这个决定你用什么域名来访问你的服务器。例如如果你的域名为 analog-life.com
,然后你希望用 test1.analog-life.com
来访问服务器,则这个主机记录因该设置为 test1
。而「值」那一栏因该填你 MC 所在的云服务器的 IP 地址。最终设置好的 A 记录如下图:
等待该记录解析成功后,在游戏客户端中服务器地址那里就可以使用「域名:IP」的方式来访问了,例如:test1.analog-life.com:25565
。
4.3 设置 SRV 记录
如果只进行上面的 A 记录解析,进入服务器还是要输入端口号。如果你更改了端口号,但是又不想让别人知道,亦或是自己也不想每次都输入,这时候就可以用 SRV 记录来实现这个功能。
SRV 中的主机记录和 A 的功能是一样的,即如果大家想用哪个域名登录服务器就设为哪个的值。但是有一点区别,就是必须加上 _minecraft._tcp.
前缀,不然无法进入 MC 服务器。
SRV 的「值」的填法和 A 记录的不同,SRV 中需要顺序填优先级-权重-端口号-目标地址。这里一般优先级填 5;权重写 0;端口号就是你的 MC 服务器的端口号,如果没改就是 25565,改了就填你自己改的那个数值;目标地址就填上一步那个 A 记录的域名即可。填好后的结果如下图所示:
填好后,稍微等待一会,就可以进入 MC 客户端的多人模式,并在游戏中「服务器地址」那里填写上 test2.analog-life.com
(大家需要按照自己的实际情况进行修改),就可以进入服务器愉快的玩耍了。
5 一些问题
5.1 我都设置好了,客户端也能搜索到这个服务器了,还是进不去
可能是因为没关正版认证,没关正版认证会使得服务器只允许正版用户登录。解决方法:编辑服务器目录下的 sever.porperties
文件,并将 online-mode
设置为 false
。
sudo vim server.properties
online-mode=false
5.2 我想修改服务器端口、修改服务器配置、修改游戏设置等等
同样是在 sever.porperties
文件中进行修改。这个文件里面有很多的设置项,各项的功能可以参考这个网站:网页链接。
5.3 关闭 SSH 链接后,我的服务器停止了?我想一直运行
可以使用 Screen
软件运行服务器,这样你关掉 SSH 链接窗口服务器也不会停掉了。
Screen 软件的安装方法:
# CentOS
yum -y install screen
# Ubuntu
apt install screen
安装完成后,我们可以使用命令新建一个用来运行服务器的 screen 窗口,并命名为 Minecraft
。具体的使用方法:
screen -S Minecraft # 新建一个名为 Minecraft 的 screen
这时,只要在这个 screen 里面输入 bash run.sh
命令运行服务器,即可以保证关掉 SSH 链接窗口服务器也不会停掉了。
成功运行服务器后,按住键盘上的 Ctrl
,并依次按下 A+D
键,即可使得这个 screen 后台运行。这时候大家就可以放心的关掉 SSH 链接窗口了。
下一次进入 SSH 链接后,如果想继续控制服务器,可以使用该命令重新进入这个 screen:
screen -r Minecraft
这时就可以重新进入这个 screen,并对服务器进行控制了。
(注:如果有时候因为退出 screen 的方式不正确,这时使用该命令进入 screen 可能连不上,可以试一下使用 screen -D -r Minecraft
来进入这个 screen)