关于P2P打洞的一些记录

4728 世界杯吧 | 2025-07-19 23:31:08

什么是P2P?P2P(点对点)连接是一种网络架构,其中各个节点(计算机或设备)可以直接相互通信和共享资源,而不需要依赖中心服务器。每个节点既可以是客户端,也可以是服务器,形成一个对等的网络。

P2P的工作原理在P2P网络中,节点通过特定的协议直接连接,进行数据传输。常见的P2P应用包括文件共享(如BitTorrent)、即时通讯(如Skype)和区块链技术(如比特币)。

P2P的优点

去中心化:没有单一的控制点,减少了单点故障的风险,提高了网络的鲁棒性。

资源共享:节点可以共享自己的计算能力、存储和带宽,增强了资源的利用率。

成本效益:由于没有中央服务器,运营和维护成本通常较低,用户可以免费使用或以较低的费用享受服务。

隐私保护:P2P网络中的用户通常可以在一定程度上保护自己的身份,增强了隐私性。

扩展性:P2P网络能够轻松扩展,新增节点可以自然地融入网络,不会对现有结构造成显著影响。

故障容忍性:即使某些节点下线,其他节点仍然可以继续保持网络的运作,提供更高的稳定性。

快速传输:在文件分享和数据传输方面,P2P网络可以利用多个节点并行传输,往往比传统服务器更快。

通过P2P打洞前提:首先你要知道什么是NAT

传送门:NAT百度百科

其次非常非常重要的一点是要知道当前网络的NAT类型

NAT

类型

NAT1

Full Cone

完全锥形NAT

NAT2

Address-Restricted Cone

地址限制锥形NAT

NAT3

Port-Restricted Cone

端口限制锥形NAT

NAT4

Symmetric

对称式NAT(动态NAT)

可以简单理解为NAT1非常容易打洞,如果你的网络环境是NAT4则很难打洞。

如果需要打洞的两个网络环境都是Symmetric NAT则**100%**不可能打洞成功。

(其实也有例外,将你的内网某一机器暴露在公网环境下DMZ,不建议这么做!)

如果其中一个网络环境为Full Cone则有很大的概率打洞成功。

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

CSDN资料:【网络】P2P打洞原理(简单描述)

类型

类型

是否可以打通

全锥形(NAT1)

全锥形(NAT1)

Y

全锥形(NAT1)

受限锥形(NAT2)

Y

全锥形(NAT1)

端口受限锥形(NAT3)

Y

全锥形(NAT1)

对称性(NAT4)

Y

受限锥形(NAT2)

受限锥形(NAT2)

Y

受限锥形(NAT2)

端口受限锥形(NAT3)

Y

受限锥形(NAT2)

对称性(NAT4)

Y

端口受限锥形(NAT3)

端口受限型(NAT3)

Y

端口受限锥形(NAT3)

对称性(NAT4)

X

对称性(NAT4)

对称性(NAT4)

X

如何测试NAT类型?

NatTypeTester_NAT类型测试工具:https://zhangzhilong.lanzouw.com/icmLM2d9oyyh

打开测试工具

默认的服务器不能用了

输入stun.miwifi.com进行测试

1stun.miwifi.com

我第一次测试是对称性的NAT类型,我登录了猫盒,改了桥接模式,通过路由器进行拨号上网

光猫改桥接具体根据猫盒型号自行百度

在猫盒上设置打开UPnp

我的路由器是Padavan固件,将路由器防火墙的NAT类型修改为Full Cone NAT类型。

进行了以上设置以后我再次进行了检测,这时候已经是全锥形了。

根据以上总结,我现在已经是NAT1,我对任何外网电脑进行打洞基本就有很大成功率了!

zerotier官网:https://www.zerotier.com/