DC的工作间 · 2020年3月22日 1

【计划】专有游戏服务器#2 – 软件选择及先行测试

前篇:【计划】专有游戏服务器#1 – 背景及硬件选择(https://blog.desmondcobb.org/archives/413)

三、软件选择及先行测试

(一)、操作系统

目前我们的MC服务器采用Ubuntu Server 16.04作为操作系统,由于我比较熟悉Ubuntu所以一直以来使用体验良好(顺便一提由我管理的Linux Server大都运行Ubuntu Server LTS)。但由于前文提及的问题:Linux下无法愉快地搭建BF2服务器,所以这次决定在Vanilla Valley上采用Windows Server。

为了避免无关服务消耗系统资源,以及让Windows更新更加可控,我计划采用派生自Windows 10的Windows Server 2016/2019,如果出现不可避免的兼容性问题的话(比较担心BF2这个发行于2005年的游戏的服务端能否在“现代”操作系统上正常运行)考虑回退到更早版本的Windows Server。由于我本人之前未使用过Windows Server,所以一旦出现我难以解决的问题,我会考虑转而使用经过一些配置的Windows 10作为操作系统。

说到这里,可能有人会问“既然你都不用Linux了,那之前为什么说着确保Linux兼容性而排除Deskmini+APU方案?”。我的解释是:这次Vanilla Valley的搭建首要目的是为了搭建稳定的、便于管理的BF2服务器,其次才是顺便改善MC的游戏体验。BF2作为一款群里老哥们玩到现在都仍觉得有趣的游戏,自然有其魅力所在,虽然我无法保证我们会再对这款游戏保持多久的热情,但在我们还愿意玩、玩得动的时候,我会优先考虑这款游戏的服务器搭建;而当我们叫不齐开黑BF2的人,决定转而玩其他游戏的私服的时候,采用Linux作为操作系统通常是更好的选择(从资源占用/管理便利考虑)。

(二)、内网穿透

FRP。非要解释一下的话,选择FRP的原因是:足够轻量,配置简单。

(三)、虚拟局域网(VLAN)

这一条存在的原因还是因为BF2。由于EA在几年前关闭了包括BF2、BF2142等游戏的账号服务器,目前想要进行BF2的线上多人游戏需要借助TT国内战网(已关闭)、BF2Hub等第三方账号服务器,而这些网站并未公开架设账号服务器的相关软件及资料,所以一旦这些网站关停(事实上,EA已经官方出手关停了Revive BF2这一项目),我们将再次面临无处可去的困境。

或者,我们也可以离线进行局域网多人游戏。这时问题便转化为了“如何建立一个VLAN”和“如何在局域网内架设BF2服务器”了——相对架设公网服务器而言难度小了很多。

经过选择、比较和测试(过程会在下面讲),我决定使用Zerotier组建VLAN,同时用目前的阿里云公网服务器作为一个Zerotier One MOON服务器对VLAN进行加速和转发。

(四)、先行测试

在购买硬件前,我先对所需使用的软件进行了一些测试,以免因软件问题导致服务器不能成功搭建,使花大价钱(对我而言)购置的硬件闲置甚至荒废。

首先是BF2和MC的服务器端软件。我在2017年就尝试过在Windows 10下开BF2私服并且成功启动了局域网服务器,所以此次不再进行测试;MC不出意外也运行良好。

测试重点之一是Zerotier。我找来了两位有空的老哥协助,其中一位在巴基斯坦援建(简称Q),另一位和我同城但由于一些原因使用的是辣鸡广电网(简称A)。不使用MOON节点时,依托Zerotier的官方节点,Q能够加入VLAN并保持较好的丢包率——虽然由于地域过于遥远还是没法愉快地玩耍;A则完全无法加入VLAN,再一次认证了广电网是多么辣鸡。而使用了自行搭建的MOON节点后,Q的延迟降低了约40ms,而A终于加入了VLAN,并能维持几十ms的较低的延迟。在加入VLAN后各设备都能互相发现,用于局域网游戏应该是不成问题了。

另一个测试重点是FRP。我用FRP将我在笔记本上启动的MC服务器穿透到现有的阿里云服务器上,并邀请一位老哥和我一同进入服务器大肆破坏以消耗CPU、内存及网络资源。测试中服务器的表现远好于在阿里云服务器,丢tick现象大大改善,延迟有所增加但不影响总体游戏体验。需要注意的是我在阿里云后台上看到了400+KB/s的峰值,以后游玩人数增多的话阿里云服务器的带宽可能有些吃紧,所以不排除以后分流一部分(不嫌麻烦的)老哥使用Zerotier通过VLAN进行连接——Zerotier建立VLAN优先通过UDP打洞直连,不成功则回落到MOON服务器转发,在最坏情况下,即UDP打洞始终不成功、仅能使用服务器转发时也应该不会造成比FRP更大的带宽压力。

(五)、小结

使用Windows、Zerotier、FRP的组合应当能够满足“预期”中的需求,且未来存在可以调整优化的空间。

注:《专有游戏服务器#1》中提到的购买Vanilla Valley所需的硬件均发生在本文的测试后。