1)是的,使用最合理的防火墙,除非你以非常偏执的模式配置它。
2)不完全。 本文 更详细地解释了它,但想法是其中一个客户端首先将数据报发送到另一个公共IP。然后丢弃此数据报,但另一个客户端知道它已被发送,因为第一个通过服务器告诉它。然后另一个客户端将数据报发送回第一个数据报到第一个数据报源自的同一个端口。由于第一个客户端的NAT记得有来自该端口的数据包,因此它认为传入的数据报是对第一个数据报的回复。这里的问题是弄清楚哪个公共端口NAT将选择发送第一个数据报,但大多数NAT以可预测的方式进行,因此它几乎总是正常工作,有时只是不是第一次尝试。
1)是的。但是,如果您正在联系非NAT服务器,则不需要打孔。您的客户端应用程序只是正常运行。
2)是的。
3)一些NAT确实将公共端口限制为仅一个发送器 - 接收器对。如果您需要在这种情况下打孔,您唯一的机会是猜测NAT将为直接连接选择的公共端口。
但是,NAT不是安全功能。因此,接受任何数据包到公共端口不是安全漏洞,因为与直接连接到互联网的客户端的简单情况没有区别。