用树莓派搭建Minecraft服务器

我们已经有教程教你怎么在windows/OSX盒子上搭建自己的方块世界Minecraft服务器了,但是如果我们需要更轻量级,更省电,而且要一直在线,朋友们随时可以上来玩的服务器呢?下文介绍了如何用树莓派搭建低能耗的Minecraft服务器,你可以全天不间断地开着,每天的电费大概只要一个便士。

为什么要折腾这个?

这个教程分为两个部分:搭建你自己的Minecraft服务器,以及在树莓派上搭建Minecraft服务器。为什么要自己搭Minecraft服务器呢?因为在自己的服务器上玩Minecraft,不是随便谁都可以做的。你可以让服务器一直运行,当你不玩的时候,你的朋友和家人还可以加入到游戏中,继续建造你的世界。你可以尝试修改游戏参数,制作mod,而且还能让你体验一把GM的感觉,这在公共服务器里可是做不到的,而且也不用花很多钱去租远程主机来做服务器。

对于Minecraft狂热粉丝而言,搭建Minecraft服务器已经很有吸引力了。但是在树莓派上搭则会更有吸引力。小小的树莓派耗电非常少,你可以不间断地开着服务器,一年的电费也不过几块钱而已。只要一个树莓派,一张SD卡,花上一点时间设置一下,就能有一台全天候的Minecraft服务器,月运行费用只不过一条口香糖的价格。

需要的东西

这篇教程需要一些硬件和软件;除了树莓派和SD卡之外的东西都是免费的。

1个树莓派(512MB的版本比较好)

1张4GB的SD卡

教程假设你已经熟悉了树莓派的环境,而且已经安装了Debian衍生的Raspbian。如果你的树莓派还没跑起来,可以参考:HTG树莓派起步教程。

针对Minecraft服务器优化Raspbian

和我们之间分享过的那些可以同时运行的项目不大一样(例如,树莓派的性能足以同时用作天气/电子邮件提醒器和一台谷歌云打印机),对于小小的树莓派而言,运行Minecraft服务器是一项非常耗费系统资源的任务,我们强烈推荐树莓派上只运行这一项任务。Minecraft看上去只有些方块,似乎不太耗资源。但事实上在简单的外表下有着非常复杂游戏核心,要耗费很多处理能力的。

所以我们接下来要修改配置文件以及其他一些设置,针对Minecraft服务器来优化Rasbian。第一步要做的是进入Raspi-Config,进行几项微调,如果你已经安装了Raspi-Config,那么进入终端,输入”sudo raspi-config”来运行。

第一项,也是最重要的一项是进行超频。我们要把处理能力设置得尽可能高一些,以保证Minecraft流畅运行。在Raspi-Config中,选择第七项”超频”。

关于超频,虽然能听到些很吓人的警告,但事实上超频是树莓派基金会官方支持的,自从2012年年末,设置菜单中就有了超频选项。进入超频菜单后,选择“Turbo 1000MhHz”。然后你又会看到这个级别的超频可能出现的危险的提示信息(有可能损坏SD卡,但事实上对硬件不会有危险)。点击OK,等待设备重启。

然后,记得启动后登陆到命令提示符,而不是桌面。选择第三项”启动“,选择”命令提示符“。

返回到Raspi-Config菜单,选择第八项”高级选项“。这里有两个关键的更改,还有一个是可选的。先说关键的更改,选择A3 “内存分配”。

将分配给GPU的内存调到16MB(默认是64MB)。我们的Minecraft服务器运行的时候不需要图形界面,所以分配给GPU的内存有最低值就可以了。

改完GPU内存后,返回到主菜单。选择”高级选项“,然后选择A4 “SSH”。在子菜单中,开启SSH。一般来说没什么理由给这台Pi一直连着显示器和键盘,开启SSH我们就可以从有网络的任何地方来远程控制这台机器了。

最后(这项是可选的),回到“高级选项”菜单,选择A2 ”主机名“。在这里可以把主机名从”raspberrypi“改成一个更适合Minecraft服务器的名字,而且可以根据个人爱好加一些修饰,例如creepertown, minecraft4life或者miner-box。这些都是挺适合minecraft服务器的名字。

Raspbian的设置就这么多。按Tab到主屏幕的底端,选择”Finish”来重启。在重启后,可以用SSH来登录到树莓派的终端,也可以继续用连接到树莓派上的键盘(我们强烈推荐用SSH,因为SSH可以更容易地复制粘贴命令)。如果你之前从来没用过SSH,可以看这篇介绍如何使用PuTTy访问树莓派的文章。

在树莓派上安装Java

Minecraft服务器需要Java运行环境,所以我们应该在刚刚改过配置的树莓派上安装Java。用SSH登录到树莓派上,在命令提示符下输入下面的命令,给java的安装创建一个目录:

sudo mkdir /java/

然后下载最新版的Java。在本文写作时,最新版本是OCT 2013,链接和文件名会显示出版本信息。在你下载的时候,应该在Java下载页检查一下有没有更新版本的Linux ARMv6/7 Java,如果有请使用最新版本。

在命令提示符下输入:

sudo wget –no-check-certificate http://www.java.net/download/jdk8/archive/b111/binaries/jdk-8-ea-b111-linux-arm-vfp-hflt-09_oct_2013.tar.gz

下载完成后,输入:

sudo tar zxvf jdk-8-ea-b111-linux-arm-vfp-hflt-09_oct_2013.tar.gz -C /opt/

豆知识:/opt/这个目录名是早期Unix设计的残留物,/opt/目录是在操作系统安装完成后,用来安装可选(optional)软件的,也就是Unix世界的/Program Files/(译者:个人感觉/Program Files更类似于/usr)。

在文件解压完成后,输入:

sudo /opt/jdk1.8.0/bin/java -version

这个命令会显示Java安装包的版本号,例如:

java version “1.8.0-ea” Java(TM) SE Runtime Environment (build 1.8.0-ea-b111) Java HotSpot(TM) Client VM (build 25.0-b53, mixed mode)

如果没有出现上面的信息(如果你用的是更新版本的安装包,版本号可能有所不同),试试再解压一次。如果你看到了上面的信息,输入下面的命令,删掉不要的东西。

sudo rm jdk-8-ea-b111-linux-arm-vfp-hflt-09_oct_2013.tar.gz

到这里,Java就安装好了,我们可以开始安装Minecraft服务器了!

Minecraft服务器的安装和配置

现在Minecraft服务器安装所需要的基础都有了,到了安装服务器自身的时候了。我们这里使用SpigotMC,一个轻量化而且稳定的Minecraft服务器版本,在树莓派上运行得很好。

首先,用下面的命令下载一份代码:

sudo wget http://ci.md-5.net/job/Spigot/lastSuccessfulBuild/artifact/Spigot-Server/target/spigot.jar

这个链接可以一直用,因为它指向的是Spigot最新的稳定版,如果有任何问题,可以参考SpigotMC的下载页。

下载完成后,输入下面的命令:

sudo /opt/jdk1.8.0/bin/java -Xms256M -Xmx496M -jar /home/pi/spigot.jar nogui

注意:如果你在用256MB的树莓派,把上面的256和496分别改成128和256。

接下来服务器会启动,屏幕上会出现一大堆东西。等上大概3-6分钟,程序会搭建服务器,生成地图。之后的启动会快很多,大概20-30秒。

注意:如果在配置或游戏过程中发生异常(例如新建的服务器里的人物一出来就会死掉),在命令行用“stop”就可以优雅地关掉服务器,然后你就可以重启服务器,找出问题在哪里。

在上面的流程完成后,你就可以坐在电脑旁普通地玩Minecraft,启动程序,选择多人游戏。你会看到自己建的服务器:

如果搜不到自己建的服务器,点击“添加”按钮然后手动输入你的树莓派的地址。

连接到服务器后,你能在服务器状态窗口中看到状态的改变:

从服务器端显示的信息就能知道,我们已经进入游戏了。从客户端来看,也可以确定我们已经正常进入游戏了,但是游戏是在午夜的生存模式下:

出生在死亡之夜,没有武器和房子,游戏是没办法进展的。不用担心,我们接下来要进行一些设置,没有时间继续打骷髅了。另外,如果你一开始就这么玩下去,会发现游戏会很不稳定。我们现在只是为了确定服务器能够启动,能正常运行,并且能连接到客户端。

现在我们已经确认服务器能正常运行,能连接到客户端(虽然还没什么可玩性),可以关掉服务器了。在服务器的控制台里输入”stop”,就可以把服务器关掉。

退回到命令提示符后,输入下面的命令:

sudo nano server.properties

设置文件打开,进行下列更改(可以直接复制粘贴过去,前面两行以#开头的不用复制):

#Minecraft server properties #Thu Oct 17 22:53:51 UTC 2013 generator-settings= #Default is true, toggle to false allow-nether=false level-name=world enable-query=false allow-flight=false server-port=25565 level-type=DEFAULT enable-rcon=false force-gamemode=false level-seed= server-ip= max-build-height=256 spawn-npcs=true white-list=false spawn-animals=true texture-pack= snooper-enabled=true hardcore=false online-mode=true pvp=true difficulty=1 player-idle-timeout=0 gamemode=0 #Default 20; you only need to lower this if you’re running #a public server and worried about loads. max-players=20 spawn-monsters=true #Default is 10, 3-5 ideal for Pi view-distance=5 generate-structures=true spawn-protection=16 motd=A Minecraft Server

用SSH连到树莓派上,在服务器状态窗口中,输入下面的命令,给自己管理员权限(于是就可以在游戏里用更强力的命令,不用退回到服务器状态窗口了)。

op [minecraft里的昵称]

现在游戏变得好一点了,但是在游戏真正变好玩之前,还需要一些设置。我们来装一些插件。

第一个要装的插件是NoSpawnChunks。首先访问NoSpawnChunks的网页,复制最新版的下载链接。本文写作时,最新版是v0.3。

回到命令提示符(树莓派的命令提示符,不是服务器的控制台——如果你的服务器还开着,可以把它关掉了),输入下面的命令:

cd /home/pi/plugins sudo wget http://dev.bukkit.org/media/files/586/974/NoSpawnChunks.jar

然后访问ClearLag插件的页面,复制最新版的下载链接(本文写作时是2.6.0)。在命令提示符下输入下面的命令:

sudo wget http://dev.bukkit.org/media/files/743/213/Clearlag.jar

因为文件没有用.ZIP或者其他类似的东西来压缩,所以做到这一步就够了:插件已经放在插件目录里了。(记得以后如果要下载插件,文件名应该是xxx.jar,如果是压缩文件,就得在插件目录里解压缩)

重启服务器:

sudo /opt/jdk1.8.0/bin/java -Xms256M -Xmx496M -jar /home/pi/spigot.jar nogui

这次启动花费的时间会长一点(大概3-6分钟,比你期望中的30秒会长很多),因为这些插件会影响到世界地图,所以需要一些时间来进行更改。人物出生后,在服务器控制台中输入:

plugins

这个命令会列出当前正在运行的插件。你看到的信息应该是下面这个样子的:

如果插件没有被载入,就要停掉然后重启服务器了。

确认插件已经载入之后,就可以加入游戏了。你会发现游戏变好玩了。另外,你会时不时看到插件的一些信息,表明它们正在活动,就像下面的图中信息一样:

现在,Java装好了,服务器搭建好了,树莓派的配置也改好了,可以开始和朋友一起搭建世界了!