临时端口如何通过 NAT 工作?

myt*_*lon 2 networking nat

我认为我的说法是正确的:

  1. 操作系统通常使用 IANA 临时端口范围 49152 到 65535。
  2. 应用程序生成随机临时端口以建立从客户端到服务器的连接。
  3. NAT 转换 IP 地址,通常是私有-公共。

那么,临时端口如何与 NAT 配合使用呢?

据我的理解(我确信我错过了一些东西),如果例如两个端口,临时端口是否有可能(在较大的网络上更高)在网络或服务器上发生冲突?或者更多客户端碰巧生成并使用相同的随机临时端口通过 NAT 进行连接?

Kha*_*led 5

不存在冲突,因为连接的套接字是由以下四个值定义的:

  1. 源IP
  2. 目的IP
  3. 源端口
  4. 目的端口

两个不同的客户端意味着即使访问同一服务器/服务,也至少有一个不同的值,即源 IP。

为了将其与 NAT 关联起来,路由器/网关将为每个新连接创建一个新映射。保存此映射是为了能够向用户返回进一步的响应并在连接有效时使用它。这在 Linux netfilter 中称为连接跟踪。