C++-最近做的p2p共享软件想扩展,有没有方法不通过公网服务器协助打洞?

C++-最近做的p2p共享软件想扩展,有没有方法不通过公网服务器协助打洞?

清晨说ぺ晚安 发布于 2017-09-06 字数 367 浏览 1227 回复 2

最近做的p2p共享软件想扩展,看了一些TCP打洞的资料,介绍的NAT穿越都需要一个公网IP服务器协助打洞,但是,我所处的网络环境是一个校园局域网,周围没有使用公网IP的主机(对外重要部门除外,那是不能碰的),很纠结,我想知道,在没有公网IP的情况下,有没有别的方法来实践NAT穿越?大家都是怎么做的?
感觉学了理论知识后,没有试验环境了验证,,希望有经验的分享一下,非常感谢

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜柠檬 2017-10-27 2 楼

自己搭个局域网的环境,多买几台路由器就行了

夜无邪 2017-10-17 1 楼

有两种办法解决“不通过公网服务器协助打洞”。
1.设置一个与路由器的固定端口映射(可以手动配置或通过程序设置)。
2.若一方是外网环境,一方是内网环境。可以通过端口转发机制(如著名的lcx工具),使
外网机可以访问到内网。内网机可以直接访问外网机。

TCPUDP打洞关键问题是解决NET映射的问题,因为不知道内网主机通过NET出来对应的是什么端口,所以需要外网机器通知。若映射出来的都是固定端口,无需通知,默认就行。

不过,P2P是需要一台外网服务器的,因为用户在下载资源时,需要到服务器上去找哪些用户有这些资源。所以,直接把这台外网机当打洞机就好了。