因为有了 NAT,我们知道公网中的计算机如果不在路由器中设置端口转发,就无法访问局域网(LAN)中的计算机。
那么,局域网内的计算机实际上是如何从互联网上下载文件的呢?我猜互联网上的服务器只知道将文件发送到我的 ISP 路由器的公共 IP 地址,以及文件实际上是如何到达我的计算机的,中间可能有几层 NAT?路由器中是否自动设置了临时端口转发?
我不是计算机网络专家,所以如果我有任何概念错误,请指出。
因为有了 NAT,我们知道公网中的计算机如果不在路由器中设置端口转发,就无法访问局域网(LAN)中的计算机。
那么,局域网内的计算机实际上是如何从互联网上下载文件的呢?我猜互联网上的服务器只知道将文件发送到我的 ISP 路由器的公共 IP 地址,以及文件实际上是如何到达我的计算机的,中间可能有几层 NAT?路由器中是否自动设置了临时端口转发?
我不是计算机网络专家,所以如果我有任何概念错误,请指出。
这称为连接跟踪或有状态连接跟踪。它将跟踪来自 NAT 后面的源地址 + 端口和来自连接的 WAN 的目标地址 + 端口,以了解将数据包发回的位置。所以是的,这是一种快速端口转发。
https://www.rigacci.org/wiki/lib/exe/fetch.php/doc/appunti/linux/sa/iptables/conntrack.html http://www.fibervillage.com/sysadmin/199-linux-iptables -连接跟踪配置
这是 NAT 是什么以及它如何工作的基本部分——不需要端口转发。当网络请求通过一层 NAT 时,执行转换的路由器会跟踪请求的来源(不通过额外的 NAT 层)。当响应到达时,路由器将其转发回其关联请求的来源。
同样,这也是为什么正如您所提到的,公共到本地请求需要端口转发的原因。当路由器接收到没有相关请求的内容时,它不知道将内容转发到哪个本地设备。
从技术角度来看,不涉及端口转发。然而,从逻辑的角度来看,这可以被认为是一种临时端口转发的形式。