无法和网线那端的好友联机?试试用ZeroTier远程组网吧


3楼猫 发布时间:2022-01-28 20:31:45 作者:HalcyonAzure Language

虽然现在各大游戏厂商都开放了游戏中网络联机的功能,也有许多厂家自己使用了浑身解数来让我们尽可能的得到一个比较好的联机体验,但是在我们游玩的时候或多或少总是能遇到那种要么只提供“本地局域网联机”,要么延迟飘忽不定的“联机体验”。为了让我们能有更加优秀的体验,我们在这篇文章中将采用一个叫做ZeroTier的工具,通过简单的几步设置来达到和网线那端的好友共同处在一个“虚拟的局域网”下,来感受直连带来的畅玩体验!
事先声明,和ZeroTier相同的也有诸如WireGuard、Tinc等各式各样的组网工具,甚至有曾经一度风靡的hamachi可以作为联机工具的选择。本篇文章出于ZeroTier部署门槛低的特点而加以分享,后面也会提到它的缺点和不足。
好了,废话少说,让我们先直接开始和基友的互联之旅!

作为网络组建者的你

前往官网: ZeroTier – Global Area Networking ,界面是全英文的,但也不用怕,具体要用的内容都很简单。

1. 帐号注册和创建

点击右上角的Sign Up进行一个帐号的注册 & 登入。
就是这个Sign Up

就是这个Sign Up

2. 创建网络

注册,并登入完成以后就可以看见自己的账户界面了,这个时候再选择Networks来创建自己将要部署的一个虚拟局域网。
打码的是我已经在用的三个网络(>▽<)

打码的是我已经在用的三个网络(>▽<)

3. 管理网络

点击了创建网络以后,可以看见自己创建的网络对应的“网络ID”、“网络注释”和“网络地址”,接下来我们只需要稍加配置就能完成部署了

4. 公开性设置

进来了以后,对于简单的联机,我们只需要知道最开头Basis的内容并加以修改,这里以我随机创建的一个网络为例子,翻译之后大致内容如下:
—————————————————————————————————————————
如果这里选择的是PRIVATE,主机执行了加入网络的申请之后,作为网络创建者的你需要回到这个控制面板,在下滑的界面当中找到新加入的主机,并进行授权。大致授权的结果如下:
图片有点大QAQ,点开来看吧

图片有点大QAQ,点开来看吧

—————————————————————————————————————————
到此,整个网络的简单部署阶段就完成了,接下来就是链接的主机需要的操作啦~

作为加入网络的主机

1. 安装客户端

到ZeroTier的官网下载对应的客户端并安装: Download – ZeroTier (这里以1.8.4的Window平台作为示例,其他客户端举一反三自己推测步骤即可。
Windows上安装ZeroTier之后不会直接显示GUI界面,我们需要加入自己的网络。通过快捷键Win+S进行搜索关键词ZeroTier并启动,可以找到对应的GUI界面控制台。
搜索ZeroTier

搜索ZeroTier

打开GUI面板

打开GUI面板

2. 加入局域网

打开后在右下角可以开启Panel面板,在面板当中输入刚刚网页内的“网页ID”,就可以发送加入刚刚自己创建的局域网的申请了。
网络控制界面

网络控制界面

网络创建者那边验证完毕以后,你就可以像使用家里路由器一样被划分到一个对应的虚拟IP,并且用这个虚拟IP和好友进行联机游戏啦。在游戏完毕以后点Disconnect就可以和已经链接的网络相互断开链接了。不断开的话下次开电脑也会自动连上哦~

拓展补充

以上内容只是在最基本的范围内创建一个自己的虚拟局域网来联机,但是其中还有部分可能出现的问题,以及ZeroTier技术实现上的原理。如果按上文已经解决了问题的朋友可以有序离开了~

自问自答

  • 也许你会有这种疑问:这个ZeroTier明显不是国内的服务商啊,如果是国外的服务,在使用的时候我的延迟不会特别大吗?
  • 答案也很简单,ZeroTier在实现机制上可以理解为:在他们服务所在地会提供一群叫做“Planet”的星球服务器,而我们每个人的主机都是作为“Leaves"依附在这个星球上的一片叶子。在我们依附上来的时候,只需要从“Planet”处获取我们各自的依附过来的路线,就可以通过“Planet”牵线搭桥实现点对点链接(其中牵扯到很多计算机网络相关知识,这里只是用一个有明显错误,但很好理解的比喻进行解释*),这样我们和好友之间既然是直连,延迟也就很低了。
  • 在使用了上面的方案以后,我和好友联机延迟还是很大,使用ping来尝试测试连接也无法连通,这是怎么回事啊,有解决方案吗?
  • 延迟很大:极有可能是因为作为“Leaves”的你们牵手失败,不得不走位于国外的“Planet”进行中继通信。如果要解决这个问题,可以在自己有公网服务器的情况下搭建一个Moon服务器进行解决,具体教程可以参考百度,或我的个人博客: ZeroTier下Moon服务器的搭建 - 青空域
  • 无法ping通:在有Windows防火墙的情况下,很可能出现无法ping通,或者能够识别到好友游戏,但无法加入游戏的情况。对此可以在Windows防火墙中放行ZeroTier,或者临时关闭防火墙来解决(后果自负😖️)
  • 我玩的游戏是类似于《无主之地》的局域网联机游戏,这类游戏往往不能通过输入好友IP加入游戏,但我也无法扫描到和我在同一个ZeroTier下的好友,这该怎么办呀?
  • 这个问题在ZeroTier官网的文档中有提及,原文的解决方案如下:
On Windows, users trying to use LAN games, Bonjour/mDNS, or other broadcast or multicast protocols may have problems with those protocols announcing over ZeroTier networks. This is a known Windows issue, and a work-around is documented on Microsoft Technet. There is also a small open source utility called WinIPBroadcast available that assists by relaying broadcasts between interfaces. You can also try adjusting the Interface Priority in Windows. Try this first.
大意就是说如果需要在ZeroTier内广播自己的局域网游戏,在Windows平台下会有一定的问题,解决这个问题有两种方案:修改网络优先级;安装额外的小工具。我在这里给出修改网络接口优先级的办法: 通过ZeroTier实现局域网自动扫描联机 - 青空域 (同样来自个人博客XD)。由于网络优先级在每次断开以后就会自动恢复,具有临时性,所以个人比较推荐通过临时修改接口来和好友在有需要的时候进行联机,不需要的时候关闭就好啦~XD
在机核看了看貌似没有类似内容的文章,就自己写了一篇做总结。第一次写,写的不好的话还希望各位多多包涵 (′▽`〃)

© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com