创建并设置 Minecraft 服务器

创建并设置 Minecraft 服务器

《我的世界》是当今最流行的在线游戏之一。 在不到三年的时间里(首次正式发布于 2011 年秋季),他在全球赢得了数百万粉丝。

游戏开发者刻意关注二十年前的最佳例子,当时的许多游戏以今天的标准来看,在图形方面还很原始,在可用性方面也不完善,但同时它们确实令人兴奋。

与所有沙盒游戏一样,《我的世界》为用户提供了巨大的创造力机会 - 事实上,这就是其受欢迎的主要秘密。

多人游戏的服务器由玩家自己及其社区组织。 如今,互联网上运行着数以万计的游戏服务器(例如,请参见此处的列表)。

我们的客户中有很多这款游戏的粉丝,他们从我们的数据中心租用设备用于游戏项目。 这篇文章我们就来说说在选择服务器时需要注意哪些技术点
我的世界。

选择平台

Minecraft 包含以下建筑元素:

  1. 服务器 - 玩家通过网络相互交互的程序;
  2. 客户端——安装在玩家电脑上的用于连接服务器的程序;
  3. 插件 - 添加新功能或扩展旧功能的服务器附加功能;
  4. 模组是游戏世界的补充(新块、物品、功能)。

Minecraft 有很多服务器平台。 最常见和最受欢迎的是 Vanilla 和 Bukkit。

香草 这是游戏开发商的官方平台。 它有图形版本和控制台版本。 Vanilla 的新版本总是与 Minecraft 的新版本同时发布。

Vanilla 的缺点是内存消耗过多(每个玩家大约 50 MB)。 另一个显着的缺点是缺少插件。

布基特 由一群试图改进 Minecraft 官方服务器的爱好者创建。 这次尝试非常成功:Bukkit 的功能比 Vanilla 广泛得多,这主要是由于对各种 mod 和插件的支持。 同时,每个玩家消耗的内存更少 - 大约 5-10 MB。

Bukkit 的缺点是运行时占用过多 RAM。 另外,服务器运行的时间越长,需要的内存就越多(即使玩家很少)。 当选择 Bukkit 作为服务器时,您应该记住,它的新版本通常包含错误; 稳定版本通常在 Minecraft 正式版发布后大约 2-3 周出现。

此外,其他平台最近也很受欢迎(例如 Spout、MCPC 和 MCPC+),但它们与 Vanilla 和 Bukkit 的兼容性有限,对 mod 的支持也极其有限(例如,对于 Spout,您只能从头开始编写 mod)。 如果使用它们,则仅用于实验。

要组织游戏服务器,我们建议使用Bukkit平台,因为它是最灵活的; 此外,还有许多不同的模组和插件。 Minecraft服务器的稳定运行很大程度上取决于硬件平台的正确选择。 让我们更详细地考虑这个问题。

硬件要求

Minecraft 服务器和客户端对系统资源的要求都非常高。
选择硬件平台时,您应该记住,多核处理器不会提供太多优势:Minecraft 服务器核心只能使用一个计算线程。 然而,第二个核心会很有用:一些插件在单独的线程中执行,并且 Java 也消耗大量资源......

因此,对于Minecraft服务器来说,最好选择单核性能较高的处理器。 功能更强大的双核处理器优于功能较弱的多核处理器。 在专业论坛上,建议使用时钟频率至少为 3 GHz 的处理器。

为了 Minecraft 服务器的正常运行,需要大量 RAM。 Bukkit 大约占用 1GB RAM; 此外,如上所述,为每个玩家分配 5 到 10 MB 的空间。 插件和模组也会消耗大量内存。 因此,对于拥有 30 - 50 名玩家的服务器,您至少需要 4 GB RAM。

在 Minecraft 中,很多(例如,加载相同的插件)取决于文件系统的速度。 因此,最好选择SSD盘的服务器。 由于随机读取速度较低,主轴磁盘不太适合。

互联网连接的速度也非常重要。 对于 40-50 人的游戏,10 Mb/s 的通道就足够了。 然而,对于那些正在规划一个更大的 Minecraft 项目(包括网站、论坛和动态地图)的人来说,非常希望拥有一个具有更多带宽的频道。

具体选择哪种配置最好? 从 我们提供的配置 我们建议您注意以下事项:

  • Intel Core 2 Duo E8400 3GHz,6GB RAM,2x500GB SATA,3000 RUR/月;
  • Intel Core 2 Quad Q8300 2.5GHz,6GB RAM,2x500GB SATA,3500 卢布/月。 — 我们将此配置用于我们的《我的世界》测试服务器,您现在就可以在该服务器上进行游戏(下面写了如何执行此操作);
  • Intel Core i3-2120 3.3GHz、8GB RAM、2x500GB SATA、3500 RUR/月。

这些配置非常适合创建 30-40 名玩家的 Minecraft 服务器。 一些缺点是缺少 SSD 驱动器,但我们提供了另一个重要优势:保证 100 Mb/s 通道,没有任何限制或比率。 订购上面列出的所有配置时,无需支付安装费。

我们还拥有生产力更高,但同时自然也更昂贵的服务器(订购这些配置时,也不收取安装费):

  • 2x Intel Xeon 5130,2GHz,8GB RAM,4x160GB SATA,5000 卢布/月;
  • 2 个 IntelXeon 5504、2GHz、12GB RAM、3x1TB SATA、9000 卢布/月。

我们还建议您关注基于 Intel Atom C2758 处理器的 SSD 驱动器的新预算型号:Intel Atom C2758 2.4 GHz,16 GB RAM,2x240 GB SSD,4000 卢布/月,安装费 - 3000 卢布。

在 OC Ubuntu 上安装并运行 Bukkit 服务器

在安装服务器之前,我们先创建一个新用户并将其添加到 sudo 组中:

$ sudo useradd -m -s /bin/bash <用户名> $ sudo adduser <用户名> sudo

接下来,我们将设置创建的用户连接服务器的密码:

$ sudo passwd <用户名>

让我们用新帐户重新连接到服务器并开始安装。
Minecraft是用Java编写的,因此服务器上必须安装Java运行环境。

让我们更新可用软件包的列表:

$ sudo apt-get update

然后运行以下命令:

$ sudo apt-get install default-jdk

要安装和运行 Bukkit,还建议安装终端多路复用器 - 例如 screen(您也可以使用其他终端多路复用器 - 请参阅我们的 概观):

$ sudo apt-get 安装屏幕

如果我们通过 ssh 连接到游戏服务器,则需要 Screen。 有了它的帮助,你可以在单独的终端窗口中运行 Minecraft 服务器,甚至在关闭 ssh 客户端后,服务器也能工作。

让我们创建一个用于存储服务器文件的目录:

$ mkdir bukkit $ cd bukkit

之后我们去 Bukkit官网下载页面。 在页面的右上角,您可以看到指向服务器的最新推荐版本的链接。 我们建议下载:

$ wget <推荐版本链接>

现在让我们运行屏幕:

$sudo 屏幕

并运行以下命令:

$ java -Xmx1024M -jar craftbukkit.jar -o false

让我们解释一下所使用的参数的含义:

  • Xmx1024M - 每台服务器的最大 RAM 量;
  • jar craftbukkit.jar - 服务器的密钥;
  • o false - 允许盗版客户端访问服务器。

服务器将启动。
您可以通过在控制台中键入 stop 命令来停止服务器。

设置和配置服务器

服务器设置存储在 server.properties 配置文件中。 它包含以下参数:

  • 生成器设置 — 设置生成超平坦世界的模板;
  • allow-nether - 决定移动到下层世界的可能性。 默认情况下,此设置设置为 true。 如果设置为 false,那么所有来自下界的玩家都会被转移到普通玩家;
  • level-name - 包含游戏期间将使用的地图文件的文件夹的名称。 该文件夹位于服务器文件所在的同一目录中。 如果没有这个目录,服务器会自动创建一个新的世界,并将其放置在同名目录下;
  • enable-query - 当设置为 true 时,激活 GameSpy4 协议来侦听服务器;
  • 允许飞行 - 允许在 Minecraft 世界各地飞行。 默认值为 false(禁止飞行);
  • 服务器端口 - 指示游戏服务器将使用的端口。 我的世界的标准端口是25565,不建议更改该参数的值;
  • level-type - 决定世界的类型(DEFAUT/FLAT/LARGEBIOMES);
  • enable-rcon - 允许远程访问服务器控制台。 默认情况下它是禁用的(false);
  • level-seed - 级别生成器的输入数据。 为了能够创建随机世界,该字段必须留空;
  • force-gamemode - 设置连接到服务器的玩家的标准游戏模式;
  • server-ip - 表示玩家连接服务器时使用的IP地址;
  • max-build-height - 指示服务器上建筑物的最大高度。 其值必须是16的倍数(64、96、256等);
  • spawn-npcs - 允许(如果设置为 true)或禁止(如果设置为 false)NPC 在村庄中出现;
  • 白名单 - 启用或禁用服务器上玩家白名单的使用。 如果设置为 true,管理员将能够通过手动添加玩家昵称来创建白名单。 如果值为 false,则任何知道其 IP 地址和端口的用户都可以访问服务器;
  • spawn-animals - 如果设置为 true,则允许自动生成友好的小怪);
  • snooper-enabled - 允许服务器向开发人员发送统计数据和数据;
  • 硬核 - 在服务器上启用硬核模式;
  • texture-pac - 玩家连接到服务器时将使用的纹理文件。 该参数的值为带纹理的zip压缩包的名称,与服务器保存在同一目录下;
  • 在线模式 - 允许检查连接到服务器的用户的高级帐户。 如果此参数设置为 true,则只有高级帐户持有者才能访问服务器。 如果帐户验证被禁用(设置为 false),则任何用户都可以访问服务器(包括例如伪造昵称的玩家),这会产生额外的安全风险。 当禁用检查时,您可以通过本地网络玩《我的世界》,无需访问互联网;
  • PVP - 允许或禁止玩家互相战斗。 如果这个参数为true,那么玩家可以互相摧毁。 如果设置为 false,则玩家无法对彼此造成直接伤害;
  • 难度 - 设置游戏的难度级别。 可以取从0(最简单)到3(最难)的值;
  • gamemode - 指示将为进入服务器的玩家设置什么游戏模式。 可以取以下值:0-生存,1-创意,2-冒险;
  • player-idle-timeout — 不活动的时间(以分钟为单位),之后玩家将自动与服务器断开连接;
  • max-players — 服务器上允许的最大玩家数量(从 0 到 999);
  • spawn-monsters - 允许(如果设置为 true)敌对生物的产生;
  • 生成结构 — 启用(true)/禁用(false)结构(金库、堡垒、村庄)的生成;
  • view-distance - 调整发送给玩家的更新块的半径; 可以取 3 到 15 之间的值。

Minecraft 服务器日志写入 server.log 文件。 它与服务器文件存储在同一文件夹中。 日志的大小不断增长,占用越来越多的磁盘空间。 您可以使用所谓的日志轮换来简化日志记录机制的工作。 对于轮换,使用一个特殊的实用程序 - logrotate。 它将日志中的条目数量限制在一定限度内。

您可以配置日志轮换,以便在日志文件达到一定大小时立即删除所有条目。 您还可以设置一个期限,在此期限后,所有旧条目将被视为不相关并被删除。

基本轮换设置位于 /etc/logrotate.conf 文件中; 此外,您还可以为每个应用程序创建单独的设置。 具有单独设置的文件存储在 /etc/logrotate.d 目录中。

让我们创建一个文本文件 /etc/logrotate.d/craftbukkit 并在其中输入以下参数:

/home/craftbukkit/server.log { 每周旋转 2 次压缩missingok notifempty }

让我们更详细地看看它们的含义:

  • rotate参数指定删除文件前的旋转次数;
  • week表示每周进行一次轮换(还可以设置其他参数:monthly-monthly和daily-daily);
  • compress 指定应压缩归档日志(反向选项为 nocompress);
  • missingok表示如果没有日志文件,则应该继续工作并且不显示错误消息;
  • notifempty 指定如果日志文件为空则不移动该日志文件。

您可以阅读有关日志轮换设置的更多信息 这里.

优化技巧

我们立即预约,本节将仅提供与优化游戏服务器相关的提示。 微调和优化安装 Minecraft 的服务器的问题是一个单独的主题,超出了本文的范围; 有兴趣的读者可以在互联网上轻松找到自己需要的信息。

玩《我的世界》时最常见的问题之一是所谓的滞后,即程序无法及时响应用户输入的情况。 它们可能是由客户端和服务器端的问题引起的。 下面我们将提供有助于减少服务器端出现问题的可能性的建议。

定期监控服务器和插件的内存消耗

可以使用专门的管理插件来监控内存消耗 - 例如, 滞后计.

请继续关注插件更新

通常,新插件的开发人员会努力减少每个新版本的负载。

尽量不要使用很多功能相似的插件

大型插件(例如 Essentials、AdminCMD、CommandBook)通常包含许多较小插件的功能。 例如,同一个 Essential 包含 iConomy、uHome、OpenInv、VanishNoPacket、Kit 插件的功能。 小插件的功能完全被一个大插件的功能所覆盖,在大多数情况下可以删除,以免服务器超载。

限制地图并自行加载

如果不限制地图,服务器的负载会明显增加。 您可以使用插件限制地图 世界边界。 为此,您需要运行此插件并运行 /wb 200 命令,然后使用 /wb fill 命令绘制地图。

画画当然要花很多时间,但最好只做一次,关闭服务器进行技术工作。 如果每个玩家都绘制地图,服务器就会运行缓慢。

用更快且资源占用更少的插件替换重型插件

并非所有 Minecraft 的插件都可以称得上成功:它们往往包含许多不必要和不必要的功能,有时还消耗大量内存。 最好用替代插件替换不成功的插件(有很多)。 例如,LWC插件可以用Wgfix+MachineGuard替换,DynMap插件可以用Minecraft Overviewer替换。

始终清除掉落物或安装插件以自动移除掉落物

游戏中的掉落物是指当生物死亡或某些方块被破坏时掉落的物品。 存储和处理drop会占用大量的系统资源。

为了让服务器工作更快,建议删除drop。 最好使用特殊插件来完成此操作 - 例如,NoLagg 或 McClean。

不要使用反作弊软件

所谓的反作弊程序通常安装在游戏服务器上,即阻止以不诚实的方式影响游戏的尝试的程序。

Minecraft 也有反作弊功能。 任何反作弊都会给服务器带来额外的负担。 最好为启动器(但是,它不能提供绝对的安全保证并且很容易被破坏 - 但这是一个单独讨论的主题)和客户端安装保护。

取而代之的是结论

如果有具体例子的支持,任何指示和建议都会更加有效。 根据上面的安装说明,我们创建了自己的 Minecraft 服务器,并在地图上放置了一些有趣的东西。

这是我们得到的:

  • Bukkit服务器-稳定推荐版本1.6.4;
  • 统计插件 - 收集有关玩家的统计数据;
  • WorldBorder插件-绘制和限制地图;
  • WorldGuard 插件(+WorldEdit 作为依赖项)- 保护某些区域。

我们邀请所有人来玩:连接、添加新服务器并输入地址 slc.tl.

如果您在评论中分享您自己安装、配置和优化《我的世界》服务器的经验,并告诉我们您对哪些模组和插件感兴趣以及原因,我们将非常高兴。

很酷的消息: 自1月50日起,专用固定配置服务器安装费降低3000%。 现在一次性设置费用只需XNUMX卢布。

无法在此发表评论的读者请访问我们的网站 博客.

来源: habr.com

添加评论