Minecraft 服务器搭建教程

  1. 教程使用的 Minecraft 服务端程序为官方服务端程序,你可以根据自身需求下载第三方服务端程序以获取更好的插件支持。第三方服务端程序的运行方法可能与官方版不同。
  2. 教程不考虑设备可能出现的如性能或内存不足导致无法运行服务端程序因审查地区网络原因导致的设备无法下载服务端文件程序等问题。如出现以上问题请自己寻找解决方法。
  3. 这里仅介绍 Linux 与 Android 的搭建方法。不介绍 Windows 是因为 Windows 搭建太简单了,而且网上教程实在有点多;不介绍 macOS 是因为买不起。

Linux 搭建教程

本节无特殊说明的话,所有 「#」均代表注释,所有可能需要 root 权限执行的命令均会在命令最前面加上 「sudo」

Linux 设备获取

你可以在家用电脑上安装 Linux,或者购置一台 Linux 服务器。无论如何,建议服务端设备内存大于 3G 且带宽大于 5M 以确保服务器连接稳定(如果联机人数少则相应配置可以低一点,具体配置需求建议自行测试)。

如需购买服务器,建议购买按量计费的服务器以减少相应费用。大多数情况下,带宽可能是你首先应该考虑的方面。因此,请尽可能避开那些 1Mbps 带宽的「高性能服务器」,如果你不慎已入手一台,请尽早退款……

以下是我个人用过的几个性价比较高的云服务厂商,个人评价仅供参考(毕竟我不是玩云主机的)。

厂商 优缺点 评价
谷歌云 优点:高速稳定,新用户有 $300 美元赠金(不过现在只有 90 天了)缺点:有点贵… 土豪和白嫖怪的不二之选
Vultr 优点:便宜,价格亲民,支持支付宝支付。缺点:相同价位性能偏低(貌似买它的人也不是奔着性能去的) 看网上多少 Vultr 的邀请链接你就懂了
阿里云 优点:经济实惠,按量付费价格可以接受缺点:国内厂商,使用需要实名…(你为什么不用阿里云国际版呢) 曾经的良心云(
腾讯云 优点:经济实惠,按量付费价格可以接受,最近优惠力度蛮大,大有做一个「良心云」的态度。优惠券:链接(含 AFF)缺点:国内厂商,使用需要实名… 是不是良心云还需要观察…

SSH 连接服务器(家用设备请跳过)

SSH(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH 通过在网络中创建安全隧道来实现 SSH 客户端与服务器之间的连接。

通过 SSH 连接你的服务器需要你的服务器已启用 SSH 服务并放行 SSH 服务端口(默认为 22)。

Windows/macOS/Linux 设备 SSH 连接服务器

请根据你的系统类型打开终端 。Windows 为 cmd,同时按下 Win+R 后输入 cmd 并回车即可进入。

请确保你系统已安装 OpenSSH。目前已知 Windows 已于 2018 年集成 OpenSSH,macOS 已集成 OpenSSH,部分 Linux 发行版未集成 OpenSSH。

对于未安装 OpenSSH 的系统,请手动安装 openssh 软件包。

在确认已安装 OpenSSH 后,输入如下命令连接你的服务器

ssh -p <port> <username>@<ip>
#<port> 为 SSH 进程端口号,如默认端口号 22 可以省略。
#<username> 为服务器用户名,<ip> 为服务器 IP 地址
#以下是示例连接命令
#ssh root@127.0.0.1

输入命令后会要求你输入服务器密码,请输入你设置的服务器密码。建议使用 SSH 密匙登录服务器并禁用密码登录以保证服务器安全。

Android 设备 SSH 连接服务器

请参照 Android 搭建教程-连接 Linux Deploy 容器

设置 JRE

下面是几种常见的 Linux 发行版的安装命令

# Debian/Ubuntu
sudo apt-get install -y default-jre-headless
#CentOS 8.0+
sudo dnf install -y java-1.8.0-openjdk
#对于 CentOS 8.0 以下的服务器,请输入下面的命令
#sudo yum install -y java-1.8.0-openjdk
#Arch Linux
sudo pacman -S --noconfirm jdk8-openjdk

下载 Minecraft 服务端

下载之前,你首先要了解 Minecraft 客户端 Java 版基岩版的区别。

建议先建立一个专门的文件夹存放服务器数据。 示例命令如下:

mkdir $HOME/minecraft

根据你的客户端平台,从以下两个链接中选择一个链接下载。

Java 版请点击 https://www.minecraft.net/en-us/download/server

基岩版请点击 https://www.minecraft.net/en-us/download/server/bedrock

示例下载命令如下:

# 如果创建了 minecraft 文件夹则先转到 minecraft 文件夹
# cd $HOME/minecraft
wget https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar

注意,请务必将以上链接修改为你设备平台适用的服务端程序下载链接

运行服务器端

确认文件已下载完成后,根据自己服务器端版本输入以下命令

java -Xmx[初始启动分配内存] -Xms[最大分配内存] -jar [jar 包所在路径] nogui
# 如果要使用其图形用户界面启动服务器端,则可以省略「 nogui」部分。
# 运行示例命令
#java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.3.jar nogui
# 基岩版下载的默认是 zip 文件,需要解压后使用
unzip bedrock-server*.zip #解压下载的 zip 文件
LD_LIBRARY_PATH=. ./bedrock_server

Java 版服务端程序在第一次运行后会生成初始配置文件后自动中止。你可以用任意 Linux 文本编辑器(如 VIM、nano)打开服务器端目录下的eula.txt,然后将 eula=false 改为 eula=true

EULA 是 Minecraft 最终用户许可协议,修改为 true 即代表你同意许可协议。

你当然可以不同意,不过与之对应的是服务端程序无法运行。

输入如下命令再次启动服务器端

# 示例命令
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.3.jar nogui
# 示例命令
LD_LIBRARY_PATH=. ./bedrock_server

如需停止服务端,请直接输入/stopCtrl+C

官方服务器端配置中默认开启了正版验证,意在禁止盗版客户端连接服务器端,但是在实际操作中可能会出现正版用户也无法连接的情况。如果你在确认配置无误后不能连接服务器,请将 server.properties 中的 online=true 改为 online=false

如果你使用的是诸如谷歌云、微软云、阿里云这样 NAT 服务器,你可能需要进行内网 IP 端口转发才能正常连接服务器。

你可以点击这个链接以了解有关 server.properties 的配置。

为服务器端会话稳定,建议安装 Screen 并在 Screen 会话中运行服务端程序,这是远优于 nohup 的后台运行解决方案。

#Debian/Ubuntu
sudo apt-get install -y screen
#CentOS 8.0+
sudo dnf install -y screen
#CentOS 8.0 以下请输入以下命令
#sudo yum install -y screen
#Arch Linux
sudo pacman -S --noconfirm screen

输入如下命令创建一个 screen 会话

screen -S mc

Screen 其他基础命令:

  • 创建会话:screen -S <name>
  • 列出已创建对话:screen -ls
  • 转到某一创建对话:screen -r <name/id>

更多命令可以查看该链接

Android 搭建教程

Android 搭建 Minecraft 服务器端的思路即先在 Android 上搭建 Linux 环境,然后再在 Linux 环境中运行服务端程序

因此,Android 搭建教程与 Linux 搭建教程高度相似。为避免重复,本节只叙述如何在 Android 上搭建一个基本可用 Linux 环境。

注意,Android 端搭建 Linux 环境需要 Android 手机已获取 root 权限。

配置 Linux Deploy

请从 Google Play Store 下载并安装 Linux Deploy

你可以尝试在其他渠道下载 Linux Deploy,但请尽可能确保 Linux Deploy 版本为最新版且为官方正版。

安装后打开 Linux Deploy,点击右下角的配置按钮,根据你的实际需求修改你的配置信息。

  • 目前 Linux Deploy 只有 Debian 系 Linux 发行版可以基本正常使用,因此在配置中建议选择 Debian 系发行版以减少其他不必要的麻烦。
  • 对于国内用户,建议将配置中的「源地址」修改为国内镜像源。
  • 为避免异常,请将默认用户名「android」修改为 「root」。
  • 请在「本地化」配置中修改配置为「zh_CN.UTF-8」。
  • 请务必勾选 SSH 配置中的「启用 SSH 服务器」。

在完成你的自定义配置后,点击右上角菜单后选择「安装」,如果出现 root 权限请求,请「允许」。

安装结束后,请先点击底部的「停止」停止容器,然后点击底部的「启动」启动容器。

连接 Linux Deploy 容器

Linux Deploy 仅提供容器而不提供可操作的终端(你能接受浏览器作为终端的话当我没说),这意味着我们需要自己再下载一个 SSH 客户端以连接容器。

Termux

这里推荐使用 Termux 作为 SSH 客户端。

Termux 作为一个强大的终端仿真器,集成了 Linux 环境,可自定义性高,对于有一定 Linux 使用经验的人来说非常方便。

Termux 默认没有安装 openssh,需要输入pkg in -y openssh手动安装。

对于审查地区,Termux 默认源的连接速度可能非常慢,可以输入如下命令更换清华源以提速

sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

安装完 OpenSSH 后,输入以下命令连接 Linux Deploy 容器。

ssh <username>@<ip>
#示例
#ssh root@127.0.0.1

输入该命令后会需要你输入密码,请输入你在 Linux Deploy 配置时设置的密码,密码在输入过程中无回显。

Juice SSH

如果你终端使用经验不足,也可以选择小白友好的 Juice SSH

鉴于 Juice SSH 界面简洁易懂,这里不做过多描述。你只需输入在 Linux Deploy 配置时设置的 「用户名」和「密码」及容器的「 IP 地址」。如果是本机连接容器,IP 地址输入 「127.0.0.1」即可;如果是区域网内连接则输入安装容器的设备的「区域网 IP 地址」,区域网 IP 地址可以在手机「设置」查看。

安装和配置 Minecraft 服务端

请参照 Linux 搭建教程

鉴于手机 CPU 架构及性能,建议不要尝试在手机上搭建 Java 服务器…

官方基岩版服务端程序可能无法在 Linux Deploy 容器中运行,建议改用第三方服务端程序,如 Nukkit

连接服务器端

  • 如果你希望在同一区域网下与其他玩家联机,则只需要处于同一区域网连接下即可。
  • 如果你是在家用设备上搭建 Minecraft 服务器(即无公网 IP),则其他玩家无法在非同一区域网下连接你的 Minecraft 服务器。你可以通过 内网穿透 以实现公网环境连接内网设备。请注意相关安全防护以避免因内网穿透造成内网环境被攻击Minecraft 基岩版内网穿透协议为 UDP 且需要本地端口与远程端口一致才可以正常连接
  • 公网设备请注意保护 IP 地址,毕竟某些闲人还是很多的。

如果是区域网内搭建的服务端,则在 IP 地址中填入服务端「区域网 IP 地址」,公网设备与内网穿透设备填写设备的公网 IP。端口填你在服务端配置文件中设置的端口(Java 版默认 25565,基岩版默认 19132)。

请注意检查你服务器防火墙设置中是否放行相应端口,未放行相应端口则客户端无法连接服务器端。

以下给出参考的放行规则,具体操作方式和配置请根据你自己的情况选择。

  • 名称:minecraft-rule
  • 目标标记:minecraft-server
  • 来源过滤条件:IP 地址范围
  • 来源 IP 地址范围:0.0.0.0/0
  • 协议或端口:Java 版选择 TCP,基岩版选择 UDP,然后在提供的字段中输入你配置文件中的端口号,Java 版默认 25565,基岩版默认 19132。

End

如果一切正常的话,你已经成功搭建并和你的小伙伴们一起进入游戏了,想不出什么话总结,只能祝你们玩得开心了😂。

Built with Hugo
主题 StackJimmy 设计