在Linux上快速搭建、配置Minecraft服务器

2016-07-19_minecraft.jpg

自己一直都不是重度MC玩家,只是偶尔和基友一起撸一下,很多第三方服务器的玩法,完全搞不明白,其实自己搭建一个官方的标准服务器就好了。也没什么服务器权限管理,就依赖whitelist 白名单来控制是否为合法玩家。

服务器

我自己选择的阿里云,多线机房确实太重要,比如我是电信,基友是联通。以下我以debian为例子,选择debian理由很简单,部署环境的速度够快够简单

内存尽量选择1G以上,1-4G就尽量选择32位系统吧,节约一些内存,当然在线玩家人数在5人以内的话,1G足以。512MB内存光运行minecraft_server.jar就捉襟见肘,而且512MB内存运行mc服务器,在创建世界的时候容易crash

纯粹简单的快速搭建,不需要考虑极致的稳定性,比如源码本地编译之类。所以本着快速部署的包安装为原则,建议可以使用debian或者ubuntu

更新包管理器,安装minecraft_server所需环境依赖

  • 先更新包管理器,下面我都以debian上apt-get为例
1
apt-get update
  • 安装JDK
1
apt-get install default-jdk

默认会安装open-jdk 1.7,可以通过java -version来检查jdk是否安装成功。

  • 安装screen,因为官方minecraft_server启动时,由于我们切断当前终端的会话,是会导致minecraft_server关闭的,所以需要依赖screen来建立一个脱离依赖终端窗体运行的会话。
1
apt-get install screen

部署

  • 下载官方minecraft_server.jar

打开https://minecraft.net/download,选择下面的minecraft_server.xxx.jar进行下载,其中xxx表示当前官方最新版本号。当然你也可以根据自己所需版本号,在网上寻找,比如在http://www.mcbbs.net/

  • 开始部署

根据自己需求,先建立一个目录,比如mkdir minecraft_server,因为minecraft_server.jar在启动的时候,会在当前路径下生成一堆文件,比如各种配置信息、log、还有最重要的世界数据

  • 建立screen会话
1
screen -S "mcserver"
  • 初次运行

运行minecraft_server.jar,根据实际内存设置下面指令参数

1
java -Xmx1G -Xms1G -jar minecraft_server.1.8.7.jar nogui

第一次运行之后,会提示需要同意了协议才能继续启动,所以第一次启动之后,会生成一个叫eula.txt的文件在当前路径下,利用vi/vim将其中的eula=false改成true

  • 配置server.properties

首先来说,同意了条款之后,并不是需要先配置server.properties,才能启动服务器,当然你可以一切默认

当中有非常多的参数,详细可以看这里进行对照修改http://minecraft-zh.gamepedia.com/Server.properties

不过大量的配置信息,直接默认就好。其实最主要的几个配置,我罗列一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 是否开启PvP
pvp=false
# 最大玩家数
max-players=20
# 世界的名字,该名字会影响初次创建世界所建立的文件夹名字
level-name=myworld
# 是否启用白名单
white-list=true
# 服务器是否为在线模式,俗称的「正版/盗版」服,启用之后会向minecraft官方确认登录的帐号是否为正版用户
online-mode=false
# 生成世界的种子
level-seed=3736255817155530355
# 服务器注释,中文需要先转ASCII
motd=A Minecraft Server

关于生成世界的种子,可以来这里寻找,挺有意思 http://www.minecraftseeds.co

  • 启动
    java -Xmx1G -Xms1G -jar minecraft_server.1.8.7.jar nogui

关于白名单的格式

  • whitelist白名单,是一组JSON Script,它的格式如下
1
2
3
4
5
6
7
8
9
10
[
{
"uuid": "01234567-fs11-sd33-0123-456789abcdef",
"name": "Hellman18"
},
{
"uuid": "vd2v222vj-e4f5-2121-2839-4a5b6c7d8e9f",
"name": "ioio881"
}
]
  • 添加用户到whitelist

当游戏启动后,需要玩家进行一次登录,之后mcserver会将新用户记录在cache当中,但该用户还并未被登记到whitelist上,所以我们需要在已经启动的服务器终端上输入一下指令

1
/whitelist add USERNAME

更多服务器指令,可以参见这里 http://minecraft-zh.gamepedia.com/%E5%91%BD%E4%BB%A4#whitelist

服务器图标

在MC服务器的根路径下,建立一个叫server-icon.png的图片,尺寸64x64,重启minecraft_server,远程链上来就能看到图标了,很酷很有个性哟

关于版本控制 和 服务器计费方式选择

我会把整个mc服务器目录下的所有文件,做一个git版本控制,每次不玩了就push到远端的git上,需要玩的时候再clone到服务器上

所以说有时候可以选择按量付费,比如我们就只是小玩几个小时,完全可以把费用控制在5元以内,当然这样也蛮折腾

总结

以上是一些简要的记录,纯折腾,至于其他第三方服务器,完全没有任何研究,休闲一下就好。