想自己搭建服务器的小伙伴们可以试一试。本篇是结合网上的方法自己整理的内容,仅供学习参考。树莓派端和Windows端我都尝试过,并且亲测有效。不过如果树莓派的内存比较小(内存比较大当我没说),不建议搭建较新的服务器,可以用闲置笔记本或者台式机来搭建,效果更好一些。
若是Windows环境则跳过此步骤
前往raspberry官网下载镜像文件:
https://www.raspberrypi.com/software/operating-systems/
有64位和32位,看自己选择,我这边选择的是64位
下载好后使用Win32DiskImager进行烧录,记得先格式化内存卡。
打开远程连接:
Raspberry端:开始->首选项->Raspberry Pi Confihuration,在Interfaces列打开VNC选项
Windows端:去官网下载VNC软件,查看树莓派IP然后连接
注意:首次开机建议直接连接显示器,通过图形化进行操作(无桌面的系统除外)
更换源及开放端口:
sudo vi /etc/apt/sources.list
以下是64位系统用的:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
如果是32位的话:
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
然后:
sudo apt-get update
安装文本编辑器vim:
sudo apt-get install vim
//如果显示报错——缺失一些依赖环境,可以试试以下命令:
sudo apt-get purge vim-common
//如果还不行就尝试其他方法吧
最后需要开放端口25565(这个端口是MC服务器的默认端口,当然在MC服务器的配置文件中可以改)。以后如果要开放一些其他端口也可以类似于这样做。
sudo ufw allow 25565
//如果报错,则执行以下命令:
sudo apt-get install ufw
树莓派系统是自带JDK11的环境(有些版本可能不是11),这里我踩过一个坑:我想搭建1.19.2的服务器,较低版本的JDK会报错显示缺少某些依赖,所以要更高一点的JDK版本。网上有很多安装教程,这里推荐一款叫SDKMAN的软件,对于我这种环境配置小白来说,这种人性化的安装模式深受我的喜欢。
curl -s "http://get.sdkman.io" | bash
安装速度取决网速,时好时坏的,为了确定安装好了,输入以下命令:
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
安装完成后接着安装Java
sdk list java
弹出的窗口里面是所有可以安装到pi上的opensdk包。可以打开一个新的终端窗口,安装Microsoft的jdk包。我这显示的最高本版是17的,所以我就安装了17,之后发现开头提到的JDK版本过低导致的报错也解决了。
sdk install java 17.0.2-ms
等待安装成功…
这里人性化的好处体现出来了,安装完成直接会覆盖之前的java版本,而且不用配置环境变量,直接输入 java -version查看当前版本。(若还是显示之前的版本,则reboot后再查看当前版本)
首先下载Geyser和spigot两个压缩文件
spigot是服务器端,访问官网下载:https://getbukkit.org/
点击Downloads->spigot->选择版本->点击黄色字体下载
geyser是互通服的重要组成部分,访问官网下载:https://geysermc.org/
点击Download->status->Geyser-Spigot.jar
这两个文件都是.jar文件,新建一个文件夹(MC_server)存放这两个文件,在当前文件路径打开终端输入:
free -h //查看空闲内存
//开服指令
java -Xms128M -Xmx6144M -jar spigot-1.19.2.jar nogui
//-Xms128M用于指定初始内存是128M(当然,这个参数可有可无)
//-Xmx6144M用于指定最大内存是6144M
//-jar参数用于指定要启动一个.jar包
//nogui参数表示不开启图形界面(可以不加)。
提醒:这里是我踩的另一个坑,我的树莓派只有2G,开机后通过free命令查看后只剩1.4G,最大分配1.2G后系统就卡的不行了,无法进行任何操作。这个时候千万别物理重启,不然会导致系统无法正常开机(就要刷系统重新来过),只能等它自己恢复好了再关掉重启。而且分配的内存小了服务器效率不高,游戏体验差。
服务器内存小的同学两个参数可以改小一点(别太小啦)注意最大内存别超过用free命令看到的available内存(也别刚好,留几十兆或多一点,要不然都会内存溢出)。命令执行完后文件夹内多出了若干东西,server.properties为服务器配置文件,具体配置信息可以查看下面链接:
Minecraft服务器属性
配置完服务器后输入命令打开eula.txt:
sudo vim eula.txt
//将最后一行的false改为true
之后再执行一遍开服指令,等待一段时间执行完成后文件夹下会多出很多文件。将之前下载的Geyser文件拖到plugins文件夹里然后再执行开服指令,执行成功后在末尾有geyser加载成功的字符串输出。
至此,开服才完整结束。
树莓派需要使用内网穿透,才可以实现公网访问,让小伙伴们也加入服务器一起玩。(有公网IP的可以忽略)
这里以sakura frp为例,官网:https://www.natfrp.com/
创建账号后需要实名认证(花费1元),免费账号可以创建两条隧道,每天可以签到获取流量。
隧道的配置可以如下:
点击配置文件,如图所示,红框中的就是密钥(后面要用到):
在软件下载处点击Linux系统->arm64->复制链接:
打开终端:
sudo -s
cd /usr/local/bin
wget -O frpc https://getfrp.sh/d/frpc_linux_arm64 //地址为你复制的地址
//安装完成后执行下面命令
chmod 755 frpc
ls -ls frpc
md5sum frpc
在 /usr/local/bin 目录下打开终端,输入frpc,将复制的token(上面说的密钥)粘贴上去,点击login。选择你创建的通道(选择后会变成绿色的字)后按ctrl+c键进入程序,当显示“隧道启动成功”则完成。
隧道创建成功界面会显示公网IP地址和域名,通过这两个加上端口号就能实现多人连接服务器。
Windows端相比树莓派较为简单一些,步骤大致与上面的差不多,只不过很多细节都可以忽略。
去官网下载最新的JDK:
https://www.oracle.com/java/technologies/downloads/
直接下载.exe文件,下载完成后双击运行安装程序,环境变量这些都会帮你配置好不用自己配置,安装完成后通过命令:java -version查看是否安装成功。
同上面树莓派端安装步骤第三步,也是下载geyser和spigot两个文件,之后安装方法(开服指令)都是一样,这里就不重复了。
同样是用sakura frp,只不过配置方面不需要这么复杂了。在官网里软件下载里面选择启动器下载安装就行:
这是一个图形化应用,登录后即可看到隧道状态。