AWS 上的免费 Minecraft 服务器,对 Linux 零知识

你好,哈布尔! 更准确地说,骗子正在寻找如何设置我的世界服务器来与朋友一起玩。

本文主要面向非程序员、非系统管理员,而不是 Habr 的主要读者。 本文包含创建具有专用 IP 的 Minecraft 服务器的分步说明,适合远离 IT 的人员。 如果这与您无关,最好跳过这篇文章。

什么是服务器?

那么什么是服务器呢? 如果我们将“服务器”的概念作为软件组件,那么服务器就是一个程序,可以接收、处理和传输从连接到该服务器的用户(客户端)接收的数据。 以该站点为例,该站点位于某个 Web 服务器上,您可以通过浏览器访问该服务器。 在我们的例子中,minecraft 服务器生成一个玩家(客户端)连接的世界,可以行走、打破方块等。 我的世界服务器负责连接玩家及其任何操作。

显然,服务器必须运行在计算机(机器)上。 您可以在家庭计算机上设置服务器,但在这种情况下:

  • 您打开计算机上的端口会危及计算机的安全
  • 服务器会给您的计算机带来负载,这可能会干扰您的工作
  • 您无法让您的家用计算机保持 24/7 运行:有时您将其关闭,有时您的计算机失去互联网连接等。
  • 要从外部世界访问您的服务器,您必须通过以下方式访问您的计算机 IP地址,对于“家庭”互联网提供商来说 动态的,也就是说,它可能会由于您无法控制的原因每 2-3 天更改一次。

而我们如何解决这些问题呢?

所有这些问题的解决方案是使用 虚拟机静态的,即不可更改的IP地址。

复杂的术语? 让我们弄清楚一下。
让我们转向维基百科。

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы...

简而言之,它是计算机中的计算机。 您还可以在其上安装操作系统并像使用普通计算机一样使用它。

我们在哪里可以得到它?

答案很简单—— AWS。 这个平台提供了许多不同的云服务,这些服务不仅对每个使用网络的人都有用。 要创建 Minecraft 服务器,AWS 产品之一是完美的 - Amazon EC2 — 24/7 可用的云虚拟机。 AWS 提供最低虚拟机(10GB SSD、1GB RAM) 免费一年此外,还可以绑定免费的专用(静态)IP 地址,以便在同一地址永久访问您的 VM(虚拟机)。

我们创建并配置虚拟机

去网站 AWS 并注册。 然后进入管理控制台。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

在控制台的服务中,找到 EC2 去吧。

选择数据中心很重要简单来说就是亚马逊服务器所在的地方。 您应该根据您所在的位置进行选择,因为互联网上的通信速度各不相同,并且您应该选择一个与您所在城市的通信速度尽可能快的数据中心。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

要选择数据中心,我建议使用该服务 旺达网络,测量数据包与其他城市的传输速度。
就我而言(莫斯科),爱尔兰数据中心适合我。

是时候创建虚拟机了。 为此,请转到选项卡 启动实例

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

让我们开始配置虚拟机。

1) 选择操作系统镜像。 Linux 搭建服务器非常方便;我们将使用发行套件 CentOS7的

应该注意的是,您的虚拟机上不会有图形环境;将通过控制台访问计算机。 它涉及使用命令而不是计算机鼠标来控制虚拟机。 不要害怕这一点:这不应该阻止你现在或放弃建立自己的 Minecraft 服务器的想法,因为它“太难了”。 通过控制台操作机器并不困难 - 您很快就会亲眼目睹。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

2) 现在让我们定义VM的技术配置。 免费使用,亚马逊提供配置 t2.micro,对于一个成熟的大型我的世界服务器来说还不够,但足够和朋友一起玩了。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

3) 将其余设置保留为默认值,但停在选项卡上 配置安全组.

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

这里我们需要配置minecraft服务器的端口访问。

简单来说,端口是一个非负数,指示来自外部世界的传入数据的地址。 虚拟机可以托管许多不同的服务和服务器,因此所有传入数据包都将虚拟机内目标(服务、服务器)的端口(号)存储在其标头中。

对于minecraft服务器,事实上的标准是使用端口 25565。 让我们添加一条规则,指示可以接受通过此端口访问您的虚拟机。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

我们点击按钮进入完成VM创建的窗口 审查并启动

为虚拟机设置 SSH 密钥对

因此,与机器的连接将使用 SSH 协议进行。

SSH协议的工作原理如下:生成一对密钥(公钥和私钥),公钥存储在VM上,私钥存储在连接到VM的人(客户端)的计算机上。 连接时,VM 检查客户端是否具有合适的私钥。

点击按钮 实行。 您面前将出现以下窗口:

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

输入密钥对的名称(为了方便起见)并单击 下载密钥对。 你应该下载 .pem 包含您的私钥的文件。 单击按钮 启动实例。 您刚刚创建了一个将安装服务器的虚拟机。

获取静态IP

现在我们需要获取静态 IP 并将其绑定到我们的虚拟机。 对于此菜单,我们找到选项卡 弹性IP 我们沿着它前进。 在选项卡上,单击按钮 分配弹性IP地址 并获得静态IP。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

现在收到的 IP 地址必须与我们的 VM 关联。 为此,请从列表和菜单中选择它 行动 选择 关联IP地址

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

接下来,我们将虚拟机绑定到我们的IP地址

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

完成!

我们进入虚拟机

现在虚拟机已配置完毕并分配了 IP 地址,让我们连接到它并安装我们的 Minecraft 服务器。

要通过 SSH 连接到虚拟机,我们将使用该程序 腻子. 从此页面立即安装 PuTTYgen

安装PuTTY后,打开它。 现在您需要配置连接。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

  1. 在标签中 时间 选择连接类型 SSH的, 港口 22。 指定连接的名称。 通过 SSH 连接的主机名是一个字符串,如下所示: имя_пользователя@публичный_dns.

CentOS 在 AWS 中的默认用户名是 CentOS的。 您可以在此处查看您的公共 DNS:

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

我接到电话了 [email protected]

  1. 在标签中 SSH -> 身份验证 输入您的 SSH 私钥。 它存储在一个文件中 .pem,我们之前下载的。 但 PuTTY 无法处理文件 .pem,他需要一个格式 .ppk。 对于转换,我们将使用 PuTTYgen。 来自 PuTTYgen 网站的转换说明。 收到文件 .ppk 我们在这里保存并指出:

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

  1. 我们通过使用按钮打开连接来连接到虚拟机 可选.
    恭喜! 我们刚刚连接到您的虚拟机的控制台。 剩下的就是在上面安装我们的服务器了。

安装和配置我的世界服务器

让我们开始设置我们的服务器。 首先,我们需要在虚拟机上安装几个软件包。

sudo yum install -y wget mc iptables iptables-services java screen

让我们弄清楚每个包的用途。

  • wget的 - 用于在 Linux 中下载文件的实用程序。 使用它我们将下载服务器文件。
  • mc - 控制台文本编辑器。 对于未经培训的用户来说,它简单且易于使用。
  • iptables的 — 用于管理和配置防火墙的实用程序,在它的帮助下,我们将为虚拟机上的服务器打开一个端口。
  • java的 —minecraft运行在java上,所以需要服务器工作
  • 屏幕 - Linux 的窗口管理器。 它将允许我们复制控制台来提升服务器。 事实上,服务器必须通过控制台启动;如果您与虚拟机断开连接,服务器进程将停止。 因此,我们将在单独的控制台窗口中运行它。

现在让我们配置防火墙。

防火墙是计算机网络的软件或硬件-软件元素,它根据指定的规则控制和过滤通过它的网络流量。 (维基百科)

简单来说:想象一座坚固的城市。 他不断受到来自外界的攻击,而城市里的生活仍在继续。 要进入城市,要塞的墙上有一扇门,守卫站在门边,从名单上检查这个人是否可以进入要塞。 计算机网络中的墙和门的作用由防火墙执行。

sudo mcedit /etc/sysconfig/iptables

我们刚刚创建了一个防火墙配置文件。 让我们用标准配置数据填充它,包括端口规则 25565,这是我的世界服务器的标准端口。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25565 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

按关闭文件 F10,保存更改。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

现在让我们启动防火墙并在启动时启用它:

sudo systemctl enable iptables
sudo systemctl restart iptables

我们将服务器文件存储在一个单独的文件夹中,创建它,转到它并下载服务器文件。 为此,您应该使用 wget的

mkdir minecraft
cd minecraft
wget <ссылка_на_jar>

需要找到 直接链接 供下载 .jar 服务器文件。 例如,链接到服务器文件版本 1.15.2:

wget https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar

使用命令查看文件夹内容 ls,确保文件已下载。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

让我们启动服务器文件。 现在服务器将无法工作:它将创建工作所需的所有文件,并会抱怨您不同意 EULA 许可证的条款。 打开文件接受条款 eula.txt

sudo mcedit eula.txt

通过将条目更改为以下内容来确认您的同意:

eula=true

打开文件 server.properties:这是您的服务器配置文件。 有关服务器设置的更多信息

必须对其进行以下更改:

online-mode=false

其余设置由您自行决定。

启动服务器

是时候启动服务器了。 正如我已经说过的,服务器直接从控制台启动,但是如果我们关闭主控制台,服务器进程将停止。 因此,让我们创建另一个控制台:

screen

让我们在此控制台中启动服务器:

 sudo java -Xms512M -Xmx1024M -jar <название_файла_сервера>.jar --nogui

服务器启动大约45秒,请勿中断该过程。 当服务器初始化并运行时,您将看到类似以下内容:

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

恭喜! 您刚刚启动并运行了您的 Minecraft 服务器。 现在,正确退出第二个控制台非常重要,这样它才能继续与正在运行的服务器一起工作。 为此,请单击 Ctrl+A然后 D。 您应该在主控制台中看到类似的消息 [detached from 1551.pts-0.ip-172-31-37-146]。 如果需要返回服务器运行的控制台,请使用 screen -r

您现在可以断开与虚拟机的连接。 您的服务器将可以通过我们之前收到的静态 IP 地址的端口 25565 进行访问。

AWS 上的免费 Minecraft 服务器,对 Linux 零知识

原来进入服务器的地址会是 <ваш_статический_IP>:25565.

结论

使用这些说明,您可以轻松设置具有专用 IP 的免费 Minecraft 服务器。 本文以最简单的语言编写,面向非专业人士。 在这方面,听到那些忙碌的人的评论很有趣,因为在简化材料时,可能会出现术语上的事实错误。

来源: habr.com

添加评论