许多游戏服务器需要一个单独的 UDP 端口——与主游戏端口不同——用于 Steam Query 和服务器浏览器通信。将两种功能混合在同一个端口上是导致"端口已关闭"警告和服务器浏览器列表失败的最常见原因。本指南将向您展示如何在 GPanel 中添加第二个端口分配,并将服务器的查询变量指向该端口。
常见症状: 如果您的服务器控制台显示类似
Warning: Port 16262 is closed, performance may be severely affected 的消息,则表示您的 UDP/查询端口未正确分配或配置。请按照本指南解决此问题。
前提条件
- 在 Legion Hosting 上拥有一个活跃的游戏服务器
- 能够访问 GPanel——使用您的 Legion Hosting 凭据登录
- 在应用启动变量更改之前,您的服务器必须处于 Offline 状态(如需要,GPanel 会提示您)
- 了解您当前的主游戏端口——可在 Console 页面或 Network 选项卡中查看
哪些游戏需要这样做? Project Zomboid、Valheim 以及其他几款基于 Steam 的游戏使用一个端口用于玩家连接,另一个端口用于 Steam Query(服务器浏览器)。这两个端口必须是不同的数字。例如,Project Zomboid 默认游戏端口为
16261,查询端口为 16262。
为什么 UDP 端口必须是独立的
游戏服务器通常同时运行两个网络监听器:
| 监听器 | 用途 | 典型默认值 |
|---|---|---|
| 游戏端口 | 接收玩家连接流量——移动、聊天、游戏状态 | 16261 (PZ)、2456 (Valheim) |
| UDP / Steam Query 端口 | 响应 Steam 服务器浏览器查询——玩家数量、名称、延迟 | 大多数情况下为游戏端口 + 1 |
如果两个监听器都指向相同的端口号,先绑定的监听器会阻止另一个。服务器会启动,但查询监听器无法打开,从而触发"端口已关闭"警告,导致您的服务器在 Steam 服务器浏览器中显示为离线,即使玩家理论上可以通过直接 IP 加入。
步骤 1 — 确认您当前的端口分配
- 登录 GPanel 并点击您的服务器。
- 在左侧边栏中,点击 Network。
- 记下分配表中列出的端口号。这是您的主游戏端口。将其记录下来——您将在步骤 3 中用到它。
- 检查是否已存在第二个分配。如果表中只显示一行,则需要在步骤 2 中添加第二个。
步骤 2 — 为 UDP/查询添加第二个端口分配
注意: GPanel 会自动分配下一个可用端口。您无法选择确切的端口号,但分配的端口将是您在步骤 3 中输入到启动变量中的端口。不要假设它会是您的游戏端口 + 1。
- 在 Network 选项卡中,点击 Create Allocation(按钮标签可能显示为 Add Allocation 或显示 + 图标)。
- GPanel 将分配一个新的端口号。等待页面刷新并确认分配表中现在出现了第二行。
- 记录新的端口号——这将是您的 UDP/查询端口。您将在步骤 3 中输入它。
不要删除您的主分配。 主端口是玩家用来连接的端口。只需添加新的分配——不要移除或重新分配现有的端口。
端口分配是随机的。 共享主机服务器会被分配随机的可用端口——您无法选择特定的端口号。新分配将是节点上下一个可用的端口。如果您需要服务器在特定端口上运行(例如游戏的默认端口),您可以购买带有专用 IP 地址的服务器,这将让您完全控制端口分配。
步骤 3 — 在 Startup 选项卡中设置 UDP/查询端口变量
在 GPanel 中添加分配会在网络层面保留该端口,但您还需要告诉游戏服务器软件实际使用该端口。这通过启动变量来完成。
- 在 GPanel 的左侧边栏中,点击 Startup。
- 查找名为 UDP Port、Steam Query Port 或类似名称的变量。确切的标签取决于您的游戏:
- Project Zomboid:查找
UDP Port或标记为查询/Steam 端口的字段 - Valheim:查找
Query Port - 其他游戏:查找任何引用"query"、"steam query"或"UDP"的字段(与主端口分开的)
- Project Zomboid:查找
- 清除当前值并输入步骤 2 中的新端口号。
- 点击 Save 或 Update 以保存更改。
Project Zomboid 详细说明:游戏端口变量(玩家连接所用的端口)和 UDP/查询端口变量是 Startup 选项卡中的独立字段。请确保您编辑的是查询端口字段,而不是游戏端口字段。游戏端口应保持不变,并且必须与 Network 选项卡中主分配显示的端口一致。
步骤 4 — 重启服务器
- 前往 GPanel 中的 Console 选项卡。
- 如果服务器正在运行,点击 Stop 并等待状态变为 Offline。
- 点击 Start。
- 观察服务器启动时的控制台输出。等待启动过程完成——大多数游戏服务器通常需要 60–90 秒。
- 查找确认查询端口已成功绑定的日志行。一旦端口正确配置和分配,警告消息(
Warning: Port XXXXX is closed)应不再出现。
验证
- 在 Console 选项卡中,确认状态显示为 Running,且启动日志中没有"端口已关闭"的警告。
- 打开 Steam 并前往 View > Game Servers(或按 Ctrl+Shift+M)。点击 Favorites 选项卡,使用
IP:QueryPort添加您的服务器,然后刷新。服务器现在应该显示玩家数量和延迟,而不是超时。 - 对于 Project Zomboid,通过游戏内的收藏夹列表连接到服务器。成功连接且没有性能警告确认两个端口都在正常工作。
- 在 GPanel 的 Network 选项卡中验证两个端口分配是否仍然存在——主游戏端口和辅助查询端口。
故障排除
重启后"端口已关闭"警告仍然出现
- 仔细检查 Startup 选项卡中 UDP/查询字段的端口号是否与 Network 选项卡中显示的第二个分配完全一致。即使差一位数字也意味着游戏正在尝试打开一个未分配的端口。
- 确认您在更改启动变量后点击了 Save。未保存就离开页面将丢弃更改。
- 尝试完全停止再启动,而不是重启——某些游戏只在全新启动时才重新读取启动变量。
Network 选项卡上没有"Create Allocation"按钮
- 某些服务器套餐的端口分配数量是固定的。如果按钮不存在或显示为灰色,请联系 Legion Hosting 支持团队为您的服务器请求额外的端口分配。
在 Startup 选项卡中找不到 UDP Port 或 Query Port 变量
- 并非所有游戏服务器类型都在 GPanel 的 Startup 选项卡中公开单独的查询端口变量。如果不存在此类字段,游戏可能会自动管理查询端口(通常为游戏端口 + 1)。在这种情况下,请确保您添加的第二个分配比主游戏端口恰好大一,以便游戏可以绑定到它。
- 如果您不确定哪个变量控制您特定游戏的查询端口,请向 Legion Hosting 提交支持工单,并注明游戏名称和您看到的警告消息。
服务器出现在 Steam 服务器浏览器中,但玩家仍然无法连接
- 查询端口和游戏端口是两个不同的东西。确认查询端口正常工作(服务器出现在浏览器中)并不意味着游戏端口设置正确。请验证 Startup 选项卡中的游戏端口变量是否与 Network 选项卡中的主分配一致。
- 请参阅 如何查找您的服务器 IP 和端口 以确认玩家使用的是正确的主连接地址。
之前出现过该警告但现在消失了——我还需要按照本指南操作吗?
- 如果警告不再出现,且您的服务器浏览器列表和连接正常工作,则无需采取任何操作。该警告仅在启动日志中持续出现时才需要处理。
按照所有步骤操作后仍然存在问题
提交支持工单,并附上以下信息:
- 您服务器的主游戏端口和辅助查询端口(均来自 Network 选项卡)
- 控制台启动日志中的确切警告或错误消息
- Startup 选项卡中 UDP/Query Port 变量的当前值
- 游戏名称和服务器类型