其实有公网 IP 的也不用迷信 Full-Cone NAT ,有是不错,没有也不用强求。
在 RFC 4787 ( Network Address Translation (NAT) Behavioral Requirements for Unicast UDP )中,定义了使语音,游戏等 UDP 应用正常工作的 NAT 行为要求:
Full-Cone NAT ( NAT 1 ),Restricted-Cone NAT ( NAT 2 )等术语的定义位于 RFC 3489 ( STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)) 中,它们都具有一个共同的特点:
从 NAT 1 到 NAT 3 ,它们都将相同的内部 IP:端口组合映射到同样的外部 IP:端口组合上,无论访问的外部主机 IP:端口组合如何,符合 Endpoint-Independent Mapping 的定义。它们都满足使语音,游戏等 UDP 应用正常工作的第一则要求。
而 Symmetric NAT ( NAT 4 ),理论和实践中都不满足使语音,游戏等 UDP 应用正常工作的要求:
有的朋友可能会说了,NAT 1 和 NAT 2 理论上也能和 Symmetric NAT 打洞 P2P 通信,所以 Full-Cone NAT 是有意义的:
Full-Cone NAT 的 NAT 映射关系全网可用,可以让 Symmetric NAT 背后的端点主动连接 Full-Cone NAT 的端点。
Restricted-Cone NAT 只要向 Symmetric NAT 的外部地址发送“敲门报文”(敲自己的门)建立本地的 NAT 映射关系,之后 Symmetric NAT 就可以连过来了。
但这是规范之外的行为,只能与特定类型的用户打洞并不符合规范要求,无情地说,NAT 4 用户能不能打洞是不值得关心的,因为本来就不能。
而且,Full-Cone NAT 具有一定安全风险:
结论:如果只是个臭打游戏的,也没有公网 IP ,只要不是 NAT 4 ,日子都还过得去。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.