如何查找 NAT 响应端口

如何查找 NAT 响应端口

NAT 的工作原理如下吗?

我的计算机 192.168.1.5 在端口:5555 上发送请求(例如),该请求发送到我的路由器 194.564.23.67(公共 IP),然后 NAT 更改端口并转发请求和端口并等待该端口上目标 IP 的响应。

有没有办法从我的计算机 192.168.1.5 确定路由器正在等待哪个端口的响应。

答案1

请注意,TCP 和 UDP 会话有两个端口。源端口和目标端口。因此,当您提到发送的端口时,讨论 NAT 会更容易并且正在发送端口

例如,当您向 Web 服务器发送请求时,该请求将发送到端口 80,并且来自临时端口(在连接期间打开的端口),该端口大于 1024。在您的示例中,如果读取正确,源端口为 5555。此端口属于发出请求的应用程序,并且在请求完成之前是该应用程序独有的。当该源端口仍处于活动状态时,无法从该计算机上的该源端口建立任何其他连接。

通常情况下,Web 服务器将在端口 80 上接收请求,并发送回复端口 5555,以及端口 80。

当涉及 NAT 时,特别是 PAT(端口地址转换),其中许多设备必须共享一个公共 IP 地址,每个设备使用的原始端口不能被视为唯一的 - 两台机器可以使用端口 5555 作为其源端口,因此一旦回复数据包从 Web 服务器到达路由器,就不清楚将其发送到哪里。

因此,除了在 NAT 期间将源 IP 地址更改为路由器的公共地址之外,源端口也会更改为从路由器的角度来看唯一的端口。这将保存在状态表中。任何回复数据包都将从 Web 服务器发送到路由器选择的端口,然后 NAT 将撤消并使用它打开的端口传递到内部设备。

很少有国产路由器会让你看到状态表。在思科路由器上,你可以这样做

 show ip nat trans

这将显示所有有效 NAT 的列表。

唯一的其他方法是检查路由器的传出连接 - 这将需要流量通过您控制的设备,这在家庭环境中不太可能发生。

相关内容