简易利用ZeroTier等工具实现多人稳定游戏联机 您所在的位置:网站首页 steam联机玩游戏耗的流量多吗苹果 简易利用ZeroTier等工具实现多人稳定游戏联机

简易利用ZeroTier等工具实现多人稳定游戏联机

2024-01-17 23:37| 来源: 网络整理| 查看: 265

当你搭建了一个Minecraft服务器,或者泰拉瑞亚等其他联机游戏想和朋友一起玩。但苦于没有公网ip地址,用免费公益的内网穿透又不稳定的时候,你就需要一个P2P内网穿透的游戏联机方式了。(下面介绍下P2P点对点内网映射,如果不想看下面的口水话直接跳到后面的使用教程)

P2P方式可以实现内网设备点对点连接,从而摆脱公网的束缚,但是还是需要一个公网服务器作为这个网络的路由器网关,别问为什么,问就是如果这个路由器没有外网地址,那么别人是无法加入你这个局域网的。

Frp,ngrok等反向代理内网穿透和p2p点对点内网穿透的区别

我们知道Frp等内网穿透也是需要公网服务器,但是Frp输入反向代理内网穿透是通过流量转发到公网的穿透服务器的方式实现,需要公网服务器的网络至少对全网延迟都不错,这样才能保证Minecraft服务器和玩家之间的延迟稳定,不丢包,导致卡顿什么的,对公网服务器有特别要求。

而P2P方式则不需要特别的服务器配置要求,因为P2P方式会让内网机器之间建立对等网络(就像局域网一样)相互直接通信,而不必经过(公网)总服务器。也就是说,无论远方的总服务器有(公网服务器)多慢,只要连接一下就能建立起机器之间的直接通信,然后就不再使用总服务器流量了,延迟就和局域网是一样的,就像你玩单机游戏和网游的区别,局域网延迟低还是访问外面服务器的延迟低?

然后如果你问没有公网服务器怎么办?别问,问就是既然Frp,ngork等反向代理有免费公益的,那P2P肯定也有免费公益的,就像本文介绍的ZeroTier,你直接拿来用就好了,也不用搭建什么。直接注册一个账号,创建网络,将大家拉到一个网络就行。

这个方式可以组建一个虚拟专用局域网络,让加入的设备设置一个虚拟网卡获取此网络的局域网ip,这样可以将更多的设备连接同一个网络中来了,正如ZeroTier官网所展示的:Global Area Networking,全球局域网。

简单的乱画了一个图,看看就好

用教程如下:

首先你得去ZeroTier官网注册一个账号,看不懂英文,可以百度谷歌网页翻译,怎么注册我就不多说,搜索引擎一堆教程。注册地址:my.zerotier.com

注册好后是这样,免费支持100台设备加入

3.注册好后,去进入https://my.zerotier.com/network点击Create创建网络

4.点击进入已创建的网络,此时可以看到Network ID,后续添加设备都会需要这个ID。

5.说下Access Control,默认是Certificate (Private Network),选择此模式表示每次在添加新的主机时,需要手动勾选是否允许连接,如果选择None (Public Network)模式,表示加入网络后自动分配IP并允许连接,从安全性来说建议使用默认选项Certificate (Private Network),方便性来看None (Public Network)更方便,不用每次加入网络后手动勾选。

这个就看你自己需要了,如果你不想别人随便加入就选择Private,如果你想开放进入就选择Public方式。

6.IPv4这里可以默认,也可以你自己选择一个网段,我这里选择10.147.17.*,那么我这个子网的网段就是10.147.17.0/24(/24是子网掩码,不做过多解释)里面的设备分配到的地址就是10.147.17.xxx。IPv6用不到,就不用去管他。

7.然后其他默认就行,无需保存,网络就算创建配置完成了,可以退出去了,接下来只需要在其他设备安装所对应的客户端,然后加入到这个网络中就可以了。

8.我们接下来要去下载客户端,来将我们的Minecraft服务器设备加入到创建好的网络里,以windows为例。

下载地址1:https://www.zerotier.com/download/

下载地址2:https://www.lanzous.com/iamgtsf

下载下来后安装,如果出现can‘not be installed,说明你电脑缺乏相应Microsoft.NET Framework 4.5环境,去安装一个就好了。

下载地址:https://www.lanzous.com/iamghoj

9.在Minecraft服务器所在的电脑安装好客户端后,点击Join Network,直接输入我们之前创建好的网络ID,然后点击Join加入。

然后你会在windows网络共享中心看到新加入的网络,ZeroTier One。

10.如果你上面第5步Access Control方式选的是Certificate (Private Network),这里是需要 Auth 才能连接的,我们需要在ZeroTier One客户端点击Jion加入网络后,在网页后台允许一下,才可以正常分配地址和使用。

那么我这里Minecraft服务器主机加入后点击勾选Auth ,信任该设备,那么以后玩家加入网络后访问我的Minecraft服务器地址就是10.147.17.136:25565,直接填10.147.17.136就可以进入了。

在网页后台确认新加入的主机

11.这里我们已经创建好网络,并将Minecraft服务器主机放到此网络中,然后我们需要去检查修改或者关闭Minecraft服务器主机电脑的windows防火墙和打开网络设置高级共享设置里面的启用网络发现。

①这里如果你不懂怎么设置或者嫌麻烦最简单得方式可以直接关闭防火墙

关闭防火墙

②但是我不建议你直接关闭防火墙,而是去检查和修改防火墙规则,打开允许程序通过防火墙,查看Java se,和ZeroTier  One,打上勾就是允许通过。当然高级设置里面的防火墙出入站规则你也可以进行具体设置如果你看得懂的话。

还要修改防火墙高级设置里,在入站规则里将TCP协议 25565端口放行,不然玩家就会无法通过25565端口访问你得MC服务器。

新建规则端口放行选择TCP 25565允许外部请求连接直接下一步完成入站25565端口放行设置

③第二个要注意的地方,就是要去启用网络发现选项。

12.到这里网络和服务器端一切都准备完成,就可以让玩家也安装ZeroTier One客户端,你将网络ID发给他,他加入网络,你网页后台确认一下就可以了,如果嫌麻烦不想确认,在第5步Access Control方式直接选着Certificate (Public Network)模式,这样人家拥有你网络的ID就可以直接加入到网络中,不需要你得手动确认了。

有新玩家加入网络时重复8-9步就行了,安装客户端,输入ID,Join加入。然后打开Minecraft启动器,启动客户端,输入加入网络中Minecraft服务器地址,就可以进入游戏了。

下面我演示下玩家加入。

网络检测:

成功加入网络后,我们CMD ping一下服务器的IP 10.147.17.136

①如果出现下面的问题就是你Minecraft服务器电脑防火墙设置有问题或者高级共享设置里面网络发现没有启用。那就去关闭防火墙和启用网络发现。玩家电脑也要启用网络发现。

移动网络可能就无法建立点对点连接这里点击是

②出现下面情况 ping得通,但是网络延迟500ms-1000ms+,就说明你得网络环境差,无法与Minecraft服务器主机直接建立点对点连接,导致流量走Zero得海外根服务器转发,特别是移动,铁通,网通宽带等用户容易出现这个问题。

这个你只有手机用电信或者联通开热点给电脑,或者换其他电信或者联通得wifi,比如蹭邻居wifi。什么?你邻居也是移动?那你就不适合这个方法了。

出现这个情况大概理由如下:

(一般 p2p 内网穿透组网的逻辑是这样的。。。(如果不是公网 IP,就必须打洞穿透(打通到公网的隧道)到公网,否则对方无法与你通讯)

首先进行 udp 穿透,打通了,p2p 通讯,两边直接对接,不经过第三方中转(就是不与服务器通讯了,两边直接建立好了隧道,这样延迟就会很低)

如果 udp 穿透不行,就只能官方服务器转发数据了,就是你和对方都和服务器对接,服务器中转所有数据。如果你觉得很慢,延迟高到离谱,估计就是 udp 打洞失败了。)

其中主要原因是:

部分地区运营商限制了UDP流量,使得ZeroTier节点间无法使用UDP进行P2P穿透,然后就无法建立点对点连接,进而迫使ZeroTier节点使用官方的中转服务器进行TCP数据转发。但是ZeroTier是国外的开源软件,在大陆境内未设有相关服务器,导致了TCP转发会出现高延迟、断流等种种问题影响体验。而Java版MC使用TCP连接,所以延迟会高到感人,但是还是有解决办法的。

文章结尾有解决办法,就是需要设置一个国内得Moon(行星节点),来辅助建立稳定低延迟得隧道连接。

ping通后我们打开启动器,输入服务器ip地址,或者扫描局域网服务器,我这里是10.147.17.136。

好了到这里,教程基本就全部结束了,Enjoy your game!

补充说明:

免费通过P2P局域网代理联机的方式还有如:teamviewer支持3个设备也就是3个人联机玩耍;hamachi(蛤蟆吃)支持5个设备联机玩耍;Zerotier支持免费100台设备加入同一子网也就是支持100个人联机(但是移动宽带网络用户可能不适用这个方法,国内复杂的网络环境可能会无法建立你MC服务器和玩家间的点对点连接,从而使流量绕行海外Zerotier根服务器转发,导致高延迟,丢包,以及无法连接服务器等,如果你MC服务器处于移动网络则会导致所有玩家无法加入等问题)

要解决这个问题可以自己建利用一个闲置的国内公网服务器(配置不做要求,阿里腾讯等学生机就可以)搭建一个Zerotier的moon(卫星节点),这样来帮助建立稳定的点对点连接,稳定低延迟的通讯;另外Tinc也可以实现这样的功能,不过搭建和配置,都超级复杂,不是很推荐。

如果对你有帮助记得点个赞哟,如果支持较多我可以建一个Moon节点用于联机使用,并且我的公益群组服正在计划和安排当中,相信不久就可以开启。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有