假设我和另一台相同的计算机位于一个本地网络中(例如,我的 IP 是 192.168.1.5 或 A,他的 IP 是 192.168.1.6 或 B),位于 NAT 后面(假设我们的公共 IP 是 5.5.5.5),并且我们正在运行一个 torrent 客户端。我们都有一个特定的文件,我们称之为“file.txt”。一台外部计算机(我们称之为 C)想要获取该文件的一部分。因此,他尝试与 5.5.5.5 建立连接(或者更确切地说是请求文件或其他东西,我不太清楚协议是如何工作的),对吗?
那么 NAT 如何知道数据包应该发送给我们中的哪一个(A 或 B)?我必须强调(如果还不够清楚的话),外部数据包(来自 C)是来自该地址的第一个数据包,这意味着我和 B 都不知道 C 的存在。
答案1
但事实并非如此。除非您为该特定端口配置了端口转发(在这种情况下,到达该端口的所有数据包都将被转发到已配置的 IP),否则不会路由此数据包。使用 NAT,必须从 NAT 后面的网络发起通信。