我无法使用匹配代码连接到其他人。为什么?
Hellpoint 是一款使用点对点架构进行多人游戏的游戏。这意味着两个玩家直接连接到彼此。我们的服务器充当匹配服务,向玩家提供何时以及如何连接到彼此的信息。"如何"是关键部分:服务器提供一个 IP 地址和一个端口用于建立连接。
服务器在 20,000 到 30,000 之间随机选择一个端口,并告诉两个玩家在特定时间连接到彼此的地址,使用从接收开始的倒计时。
示例:玩家 B 使用匹配代码连接到玩家 A。服务器告诉玩家他们将在 6 秒后使用端口 23,456 连接到彼此。玩家 A 使用本地和远程端口 23,456 向玩家 B 的地址发送连接请求。他的路由器打开端口 23,456。同时,玩家 B 使用本地端口 8,765 和远程端口 23,456 向玩家 A 的地址发送连接请求。他的路由器打开端口 8,765... 玩家 A 看到请求到达正确的端口。然而,玩家 B 没有看到请求,因为本地端口错误。结果是:"连接失败"。
为什么玩家 B 在错误的本地端口上请求?
路由器、调制解调器和 ISP 可以决定将请求重新映射到不同的本地端口。在大多数情况下,这可以被视为一种安全措施。然而,这也使得 P2P 游戏很难正常运行。这样做的路由器通常被称为对称 NAT、严格 NAT 或 NAT 类型 3。这样做的调制解调器通常被称为... 麻烦(但这种调制解调器很少见)。这样做的 ISP 被称为运营商级 NAT。ISP 重新映射请求以降低成本,因为他们不会为您分配唯一的 IP,而是将您视为与其他客户在同一子网中。
路由器
如果您的路由器为您重新映射端口,通常有一些选项可以尝试:
- 打开 UPnP;自版本 356 起,Hellpoint 如果检测到有效设备会执行 UPnP 请求
- 降低您的 NAT 级别;如果您看到"严格 NAT"或"NAT 级别 3",通常可以将其降低到级别 1(低)或 2(中)
- 您可以在 20,000-30,000 UDP 范围内对您的 PC 进行端口转发或端口触发
如果这些选项对您不可用或不起作用,作为测试(不要一直这样),您可以尝试:
- 将您的计算机放在路由器的非军事区
- 将您的计算机直接连接到调制解调器
如果这些对您也不起作用,很可能是您的调制解调器或 ISP 正在重新映射您的端口。
调制解调器
一些调制解调器具有类似于路由器的设置。不幸的是,如果您的调制解调器没有任何设置,您无能为力。
ISP
大多数 ISP 会允许您请求从他们的 CG NAT 中移除。到目前为止,我们只听说过 1 家 ISP(在 5 家中)要求额外费用。
Cradle Games 为改善 Hellpoint 的连接性所做的工作
在版本 353 中,我们引入了端口切换。游戏开始监听本地端口,如果远程端口不匹配,它会切换通信方向。
为了使其正常工作,您可能需要修改 Windows 防火墙入站规则以接受"边缘遍历"请求。如果不允许,Windows 防火墙将阻止"遍历"请求或未先前调用的端口请求。
请注意,这仅在您的朋友的本地端口被重新映射时适用,而不是您的,因为您需要检测他们的端口被更改并进行调整。

如果两个玩家的端口都被重新映射怎么办?
如果两个玩家都在对称 NAT 后面,或调制解调器进行端口映射,或 ISP 使用 CG NAT... 目前对此难题没有解决方案。两名玩家中的一名需要找出如何减少他们的 NAT 限制。
但我可以玩其他游戏没问题!
如果您在玩 FPS 或大逃杀游戏,您从未连接到其他玩家——您连接到处理游戏逻辑的专用服务器。"大"游戏也可以在世界各地部署"中继",以便无法相互连接的人使用。中继通常很昂贵,并且会增加游戏的延迟。
使用 CG NAT 的互联网提供商:
- Superonline(土耳其)
- Fastweb(意大利?)
- Kabel Deutschland(德国)
- OTE(德国)
- Liberty Global(荷兰)
- Zen(英国)
请注意,CG NAT 不支持 UPnP 或任何形式的端口转发。
我们真的希望这能帮助您在 Hellpoint 中与朋友建立连接。