如何让N2N虚拟局域网走P2P?简单测试

N2N 2020/09/21

废话就不展开说了。开始!

家里台式机A:192.168.123.1

公司台式机B:192.168.123.2

测试

通过 EasyN2N 自带的NAT类型测试,分别测的:家里、公司的网络NAT类型均为 Symmetrict NAT

PING延迟

分析

N2N是可以进行P2P通信的,在P2P连接下,虚拟局域网下的客户端连接延迟和稳定性都很不错,但前提是客户端所在网络NAT类型符合条件才可以实现P2P连接。

网络上关于NAT和P2P的关系这里就不啰嗦了,可以参考这篇文章 :NAT的四种类型及类型检测(详细介绍)

简单学习后,可以了解到P2P建立条件:

当联机的双方NAT类型有一方为Cone NAT时(以下前三种)才 有概率 建立P2P连接,如果双方都是Symmetric NAT,必然无法成功建立P2P连接

几种常见的NAT类型:

1.Full Cone
2.Restricted Cone
3.Port Restricted Cone
4.Symmetric NAT

结合上面的P2P条件,由于家里和公司的NAT类型均为 Symmetric NAT,所以无法建立P2P连接,只能通过N2N服务器中转通信

引用一段恩山论坛大佬总结的:

1.双方中只要有一方是Full Cone,可以直连
2.双方都是Restricted ConePort Restricted Cone,这种情况可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
3.一方为Restricted Cone,另一方为Symmetric NAT,可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
4.一方为端口Port Restricted Cone,另一方为Symmetric NAT,这种情况无法打洞,数据要走N2N服务器中转
5.双方都为Symmetric NAT,这种情况也是无法打洞的,数据要走N2N服务器中转

折腾

如果需要走P2P,则要调整当前网络的NAT类型,以符合P2P连接的条件

因为公司的网络比较固定(专线),并且上层交换设备无权操作,所以公司的网络这边只能放弃

同理,有些校园网、手机的4G\5G、公用WIFI等,都是这样的情况

方法1

来自 lucktu 大佬分享的方法:

方法1:edge使用固定端口,上级路由器使用端口转发过来
方法2:最新的支持upnp的edge下,打开路由器的upnp支持

方法2

打开路由器中的DMZ,将DMZ的IP指向台式机

注意:此步骤会将DMZ指向的设备完全暴露在公网下,易受到恶意攻击,请慎重开启

最后的效果:

再次测试

注意

本文所说的“有概率”,请看下图:

当我的NAT类型为Fullcone,公司是Symmetric,理论来说,是可以P2P的

但P2P不是一个开关(不是即开即生效)

在不断ping了200次左右时,NAT类型发生转变,延迟降低,可以判断为已建立P2P连接



103 条评论

  • star 评论于 回复

    请教一下我的NAT类型检测时候提示是blocked,这种一般是什么原因啊

  • mao 评论于 回复

    我和朋友联机,现在只有捐赠节点,必须都捐赠才能用吗?还是我捐赠了,我朋友也可以用

    • Bug侠 评论于 回复

      @mao
      一个就行

    评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)