= 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 服务的成本。 ==反馈== 提交并查看反馈