= Azure 上托管的基本游戏服务器 =
此参考体系结构详细介绍了设置基本 Azure 后端的步骤,该后端将在 Windows 或 Linux 上托管游戏服务器,使用
**Minecraft 服务器**为例。 ![ 在 Azure 虚拟机上运行的 Minecraft 服务器](media/multiplayer/multiplayer-minecraft-server.png)
==架构图==
![ 在 Azure 虚拟机上托管单个游戏服务器](media/multiplayer/multiplayer-basic-game-server-hosting.png)
==相关服务==
- Azure Windows 虚拟机和 Azure Linux 虚拟机 - 在 Azure 上获得计算能力的最基本方法。
- Azure 磁盘存储 - 基本持久存储。
==一步一步==
要完成的步骤摘要是:
- 设置资源组。
- 设置 Azure 虚拟机、附加永久性磁盘并打开端口。
- 通过维护端口远程访问新的 Azure 虚拟机。
- 设置操作系统防火墙。
- 初始化并格式化持久数据磁盘。
- 安装游戏服务器依赖项。
- 安装游戏服务器本身。
- 配置游戏服务器。
- 运行游戏服务器并仔细检查端口是否打开。
设置资源组
资源组是 Azure 资源的逻辑集合。所有资源都在资源组中部署和管理。执行以下操作来创建资源组:
- 如果您没有 Azure 订阅,请在开始之前创建一个免费帐户。
- 登录 Azure 门户。
- 在左侧导航中,单击
资源组。然后单击添加。
- 为资源组键入唯一的名称。系统立即检查该名称在当前选定的 Azure 订阅中是否可用。
- 在
订阅,单击要在其中创建资源组的 Azure 订阅的名称。
- 选择资源组的地理位置。
- 点击
创造。
设置 Azure 虚拟机、附加永久性磁盘并打开端口
创建资源并选择虚拟机
游戏服务器将运行的操作系统。在 Azure 门户中搜索以下内容,它们通常是最受欢迎的: Windows Linux Windows Server 2016 Datacenter 或 Windows Server 2016 VM Ubuntu Server 18.04 LTS 或 Ubuntu Server 18.04 VM
选择
Azure 订阅、资源组、虚拟机名称和区域。
选择满足您自己的 I/O 和资源需求的机器类型、磁盘类型和磁盘大小。就 Minecraft 服务器而言,一个小型 Azure 虚拟机,例如
具有 2 个虚拟 CPU (vCPU) 和 4GB RAM 的标准 B2 适合少于 10 个用户。
设置机器
管理员用户名和密码,以便以后能够远程访问它。
允许
公共入站端口为了以后能够以管理员身份连接到虚拟机(维护端口),之后将启用游戏服务器的特定端口:Windows Linux RDP(远程桌面协议)端口:TCP/3389
可选择添加 SSH 端口:TCP/22
SSH端口:TCP/22
切换到
磁盘部分并选择创建新的数据空磁盘并将其附加到 Azure 虚拟机,以存储游戏服务器可执行文件及其生成的数据文件。源类型为无(空磁盘)。
Azure 虚拟机有一个操作系统磁盘和一个用于短期存储的临时磁盘,但是一旦 Azure 虚拟机停止,存储的信息就会丢失。使用永久性磁盘,即使运行服务器的 Azure 虚拟机已停止,
之后数据将继续存在。
切换到
网络部分启用游戏服务器接受玩家请求和创建公共 IP 所需的端口。
要打开端口,您需要利用虚拟网络、子网和网络安全组 (NSG)。
虚拟网络和子网都是默认创建的,如果是 Minecraft 服务器,您无需进行任何操作。要创建网络安全组,请选择单选按钮以启用
高级 NIC 网络安全组,通过单击旁边的“新建”链接配置新的网络安全组 (NSG),并添加相关的入站规则。
在 Minecraft 的情况下,只需要一个端口,它在数量和协议上有所不同,具体取决于 Minecraft 版本(Java 版,基岩版),值的来源是 server.properties 文件,其格式在此处解释.单击“添加入站规则”链接后,使用这些值:
Minecraft Java 版 Minecraft 基岩版 Source Any Any Source port ranges Destination Any Any Destination port ranges 25565 19132 Protocol TCP UDP Action Allow Allow Priority 100 100 Name MinecraftJava_Port MinecraftBedrock_Port
要创建公共 IP,请按照下列步骤操作:单击此设置旁边的“新建”链接并使用
静态赋值。查看并创建 Azure 虚拟机。请记住,完成部署需要几分钟时间。
通过维护端口远程访问新的 Azure 虚拟机
您将需要公共 IP 或 DNS 名称来连接到 Azure 虚拟机,按照以下步骤找到它们:
- 访问您创建的资源组。
- 然后选择您创建的虚拟机。
- 这
公共 IP 地址或 DNS 名称字段是您要查找的内容,两者都可以。要设置 DNS,请单击 DNS 名称下的“配置”链接,在 DNS 名称标签下输入名称并保存。
之后,按照这些教程远程访问 Azure 虚拟机:
|远程桌面协议(TCP/3389SSH (TCP/22)|
|如何使用远程桌面||安全外壳协议|
连接到 Azure 虚拟机后,您可以继续执行下面的其余步骤。
设置操作系统防火墙
您的虚拟机已配置为接受对维护和游戏服务器特定端口的请求,但是
**操作系统防火墙**也需要配置。按照这些教程打开**您的游戏服务器需要**的端口以接受玩家请求。
|Windows||Linux|
|在Windows Server 2016上创建入站端口规则||Ubuntu简单防火墙
|
例如,在 Minecraft 的情况下,命令将是:
-
-
对于 Minecraft 服务器,请注意默认端口因游戏版本而异:Minecraft Java 版使用 TCP/25565,而 Minecraft 基岩版使用 UDP/19132。
初始化并格式化持久化数据盘
|Windows||Linux|
|使用磁盘管理 (diskmgmt.msc)
|
要打开磁盘管理,请右键单击“开始”按钮并选择“磁盘管理”。
请注意,磁盘 2 未分配,这是需要初始化和格式化的永久磁盘。
|连接到 Linux VM 以安装新磁盘
|
它涉及以下步骤:
1.发现磁盘
2.分区
3.在上面写一个文件系统
4.挂载到目录
5.设置重启后自动挂载
安装游戏服务器依赖项
对于 Minecraft 服务器,依赖项是:
|我的世界服务器版||Windows||Linux|
|我的世界 Java 版||Java 8 64 位版本||在 Ubuntu 上安装 Java 8|
|Minecraft 基岩版||Microsoft Visual C++ Visual Studio 可再发行版||N/A|
安装游戏服务器本身
在您刚刚格式化的永久磁盘中创建一个文件夹。
在那里下载并安装游戏服务器。对于 Minecraft 服务器,下载链接为:
Minecraft Java 版 Minecraft 基岩版 下载链接 下载链接
如果您通过 SSH 访问 Azure 虚拟机:
- 查看 Wget 命令文档以了解如何使用非交互式网络下载器。
- 通过运行安装解压
sudo apt-get install unzipand 然后运行
sudo unzip THEZIPFILE以便能够解压 Minecraft 基岩版服务器。
配置游戏服务器
对于 Minecraft Java 版服务器,首先更改 eula.txt 文件参数 (eula=true) 以接受其 EULA。如果您通过 SSH 访问 Azure 虚拟机,请查看 Nano 编辑器文档以通过 SSH 编辑文件。
按照 Minecraft 官方 wiki 中的教程为两个 Minecraft 服务器版本配置 Minecraft 服务器。
运行游戏服务器并仔细检查端口是否打开
要运行 Minecraft Java 版服务器,请从命令行 (Windows) 或终端 (Linux) 使用此命令:
java -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -jar server.jar nogui
如果您想使用图形用户界面启动服务器,您可以省略“nogui”部分。为了方便起见,您可以创建批处理文件 (Windows) 或脚本 (Linux)。
要运行 Minecraft 基岩版服务器:
- 在 Windows 上,只需双击
bedrock_server.exe可执行文件。
- 在 Linux 上,使用
LD_LIBRARY_PATH=. ./bedrock_server 来自服务器安装目录。服务器不需要以 root 身份运行。
如果您使用的是 Minecraft Java 版,一旦服务器运行,您可以检查游戏服务器所需的端口是否已打开并正在侦听。但是,在测试之前请确保游戏服务器正在运行:
|从||Windows||Linux|进行测试
|在 Azure 虚拟机内 ||运行
|听|跑
|
|Azure 虚拟机外部||1.按照以下步骤启用 Telnet:依次单击“开始”、“控制面板”、“程序”,然后打开或关闭 Windows 功能;然后向下滚动并选择 Telnet 客户端并单击确定
|
2. 之后,从命令行运行
已接受 |运行
|已接受
如果您使用的是 Minecraft 基岩版:
|从||Windows||Linux|进行测试
|在 Azure 虚拟机内 ||运行
||运行
|
==安全考虑==
公共入站端口向 Internet 公开,因此您应该使用 Azure 门户高级控制来限制已知 IP 地址的维护入站流量,这意味着只有您可以远程访问 Azure 虚拟机。
== 定价 ==
如果没有 Azure 订阅,请创建一个免费帐户以开始使用 12 个月的免费服务。 Azure 免费帐户免费提供的服务无需付费,除非超出这些服务的限制。了解如何通过 Azure 门户或使用情况文件检查使用情况。
您负责运行这些参考体系结构时使用的 Azure 服务的成本,总金额取决于将通过分析管道运行的事件数量。请参阅参考架构中使用的每项服务的定价网页:
您还可以使用 Azure 定价计算器来配置和估算您计划使用的 Azure 服务的成本。
==反馈==
提交并查看反馈