> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 将客户端连接到游戏服务器

> 通过解析虚拟化的 Azure 网络并使用分配的 IP 和端口映射，将游戏客户端连接到 PlayFab Multiplayer Servers 托管的游戏服务器。

PlayFab 游戏服务器是容器化的应用程序。当游戏服务器部署到 Azure 时，它们的网络环境是虚拟化的，游戏服务器将无法直接访问其 Internet 可访问的 IP 地址。

相反，使用 `GetAdaptersInfo` (Windows) 或 `GetIfAddrs` (Linux) 的游戏服务器将观察到具有非唯一 IP 地址的单个网络适配器，这些地址已通过网络地址转换 (NAT44) 配置。

网络虚拟化和 NAT 的这种使用允许游戏服务器在底层 Azure 基础设施可能变化时仍然保持连接。所有游戏服务器都具有 IPv4 连接性，但将来会增加 IPv6 连接性。

<Note>
  所有游戏服务器都具有 IPv4 连接性 - 将来会增加 IPv6 连接性。
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/playfab-game-servers-network-virtualization.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=34f1f2e3bb8d9fcce2066ef8ef30620e" alt="PlayFab 游戏服务器 - 网络虚拟化" width="735" height="349" data-path="images/playfab/multiplayer/servers/tutorials/playfab-game-servers-network-virtualization.png" />

您可以配置服务器部署以在*单台*虚拟机上打包多个游戏服务器实例。在大多数情况下，这*不会*修改网络环境，因为每次容器化都允许每个游戏服务器实例具有独立的 IP 地址和 TCP/UDP 端口空间。

但是，单台虚拟机上的*所有*实例共享物理网络基础设施，可能造成网络争用。

在测试高密度配置时，重要的是测试典型的争用不会导致不可接受的游戏体验问题。

不同的虚拟机规格和操作系统预配有不同级别的带宽。若要查看为特定 SKU 预配的带宽，请参见 Azure 的吞吐量文档。

游戏服务器通过 PlayFab 服务器 API 的服务到服务调用进行分配。客户端连接所需的连接信息通过这些服务和客户端传递，客户端通常使用 TCP 或 UDP 套接字与游戏服务器建立直接连接。通常，游戏服务器将侦听游戏开发者选定的众所周知的 UDP 和 TCP 端口。

游戏客户端需要您游戏服务器面向 Internet 的 IP 地址才能连接到它们。客户端还需要端口转发信息，以使服务器正在侦听的众所周知的端口可通过 Azure 网络虚拟化设备寻址。

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/playfab-game-servers-connecting-game-clients.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=69750aec8e634a1e8dc0c0601e9635bb" alt="PlayFab 游戏服务器 - 连接游戏客户端" width="713" height="291" data-path="images/playfab/multiplayer/servers/tutorials/playfab-game-servers-connecting-game-clients.png" />

* 公共 IPv4 地址
* 开发者提供的端口（按名称）到面向 Internet 的端口的映射。

| 游戏服务器协议名称   | 协议  | 面向 Internet 的端口 |
| ----------- | --- | --------------- |
| Multiplayer | UDP | 3098            |
| Debugger    | TCP | 23222           |

## 为游戏服务器启用 TCP/UDP 端口

通过 Game Manager 或实体 API CreateBuild 提供的端口要求使游戏客户端能够联系虚拟机。它还配置驻留操作系统上的防火墙，以在您指定的端口上启用网络流量。

## 多人服务器使用的面向公共 Internet 的端口和 IP 地址

多人 VM 使用的 IP 地址取自 Azure VM 使用的通用 IP 地址池。这些 IP 被指定为 AzureCloud 服务标记。有关详细信息，请参见[本地服务标记](https://learn.microsoft.com/en-us/azure/virtual-network/service-tags-overview#service-tags-on-premises)。所有 VM 都使用 30000-31000 端口范围用于游戏流量，使用 50000-55000 端口范围用于远程访问 (SSH/RDP) 流量。


## Related topics

- [分配游戏服务器并连接 Visual Studio 调试器](/zh-CN/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools.md)
- [连接到云托管的 Unreal 服务器](/zh-CN/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
- [跨平台多人游戏设计指南](/zh-CN/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-cross-platform.md)
- [XBOX 与 PC 多人游戏设计指南](/zh-CN/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-xbox-pc-gdk.md)
- [PFMultiplayerProtocolType](/zh-CN/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmatchmaking/enums/pfmultiplayerprotocoltype.md)
