托管游戏服务器需要 VPS 还是 VPN?
VPN 卖的是一条网络路径,虚拟服务器提供的是机器。先弄清你缺的是哪一样,再决定玩家如何到达主机。
关于游戏托管的问题往往把两次购买混为一谈,而这种混淆让工作顺序颠倒。一次购买买的是运行服务器进程的机器,另一次买的是把玩家送到那里的路径。在比较价格之前先确定你缺的是哪一样,因为无论怎么配置,VPN 订阅都不会变成主机。
下面的检查按顺序进行。在第一项失败处停下,因为后续步骤都以先前资源存在为前提。
缺的是哪种资源:算力还是可达性?
先给要安装的东西命名。专用服务器二进制需要操作系统、一份 CPU、内存、磁盘,以及断开连接后让进程继续存活的办法。如果你手上的机器都提供不了这些,缺的就是算力,答案就是托管服务器、虚拟专用服务器或托管式游戏服务。隧道一样都补不上,因为它转发的是数据包,而不是执行程序。
如果机器存在、服务器也在跑,但只有部分玩家能连上,缺的就是可达性。这正是网络路径能解决的问题。这个区分随后决定你该找哪家供应商,也决定你自己能修好什么。
VPN 账号实际提供什么
VPN 服务卖的是一台设备与一个出口之间的路径,附带地址分配,通常还有经过认证的隧道。在虚拟服务器上,同样的思路表现为一个接口、一份对端配置,以及让流量跨网络通行的转发规则。两种安排都不会在你不掌控的机器上提供 shell,而面向消费者的条款通常禁止通过该服务运行公开服务器。围绕它做规划之前,请先读一读可接受使用条款。
云实例是另一类,其文档明确说明了交付的内容。AWS 的实例概览描述的是操作系统环境,加上既定的计算、内存、存储和网络容量。这与游戏进程消耗的资源相符,其中没有任何东西像 VPN 订阅。
选择谁来连接,以及经由什么
有了主机之后,接入决策有三种形态。玩家可以连接主机拥有的公网地址,通过只有受邀对端才能到达的私有隧道加入,或者经由在两者之间中转的网关进来。每种形态改变的是谁找得到服务器,而不是服务器做什么。
公开入口更好运营,但会让服务暴露在扫描之下,所以它需要游戏自身的认证,以及只放行在用端口的防火墙。私有入口把服务藏在隧道之后,这意味着每位玩家都要安装并维护客户端,而你要让对端列表保持最新。中转让主机不出现在列表里,同时给玩家一个地址,代价是多一跳,以及多一样要监控的东西。按受众来选,而不是按哪种做法听起来更安全。
付费之前先核对要求
在承诺之前确认三件事:服务器支持哪个平台、它监听的确切端口,以及你选定的网络条款是否允许托管。游戏的要求会随版本变化,所以要读当前文档,而不是引用几年前操作系统的攻略。然后在主机上验证监听状态,而不是相信安装程序的成功提示。
ss -lunpt | grep -E ':(27015|27016)'
nc -zvu 203.0.113.77 27015
journalctl -u gameserver --since '10 min ago' --no-pager | tail -n 20
第一条命令显示有什么在绑定、绑定到哪个地址,第二条从主机外部测试可达性,第三条解释服务死掉时的停止原因。绑定在回环地址上的监听只在本机应答,别处都不应答,这正是装好的服务器看起来连不上的常见原因。
把选定的平台、端口和接入模式写下来。当补丁改动默认端口,或新玩家连不上时,你要对照的就是这份记录。