如果防火墙内的客户端通过TCP连接到公共服务器,则一旦形成连接,防火墙就允许双向通信。这是我们在日常使用中通常看到的。我的问题是:UDP也是如此吗?
由于UDP没有连接,我会稍微修改一下这个问题......
假设防火墙内的客户端向公共服务器发送UDP数据包,服务器是否可以使用传入数据包的源地址和端口通过防火墙进行响应?
答案 0 :(得分:1)
是的,这称为NAT遍历(或UDP穿通),其工作方式与TCP类似 - 有状态NAT设备知道您最近从内部的某个端点向外部的某个端点发送了UDP数据包。一个句点将接受来自同一外部端点的UDP数据包,并将它们转发到相同的内部端点。
我总是喜欢IETF文档而不是过多的相互矛盾的信息(包括在本网站上):
http://tools.ietf.org/html/rfc5128
更新:“UDP打孔”还有其他技术,如UPnP的互联网网关协议和PCP。每个都有它们的优点和缺点,我担心没有一个解决方案适用于所有NAT!