设想:
我有一个端口转发路由器,即转发port 80
到 HostA。我在同一个网络上还有另一台主机 HostB,它在 上运行 Web 服务port 80
。NAT 将如何处理?
答案1
不会。也就是说,路由器不会让您同时将同一外部 IP 地址上的同一端口 80 转发到两个主机。(如果允许,则只有“第一条”规则会匹配。)
要在单个 IP 地址后运行多个 Web 服务器,你需要将端口 80 转发到反向代理然后它在 HTTP 级别执行类似操作。(也就是说,反向代理理解 HTTP 请求并根据 HTTP“主机”或 TLS SNI 标头做出决定。)各种流行的 Web 服务器(例如 Apache、Nginx)都具有反向代理功能,但也有专用的反向代理功能。
答案2
温访问通过局域网HostA 将指向 HostA,HostB 指向 HostB。例如 hosta.domain.com:80(或通过 ip)hostb.domain.com:80 将正常响应。
当通过访问广域网(公共互联网,而非本地)它将使用 HostA 进行响应,因此 RouterIP:80 或 hosta.domain.com 将连接到 HostA,而 HostB 根本不存在或不响应。
---假设HostA正在监听80端口。
如果只有 HostB 正在监听端口 80,那么没有一个将在 WAN 上工作,而只有 HostB 将在 LAN 上工作,因为它是唯一一个监听连接的。