因此,我一直在阅读有关动态 DNS 和端口转发等内容: 端口转发至多台计算机
如果我理解正确的话,这就是现实生活中将会展开的场景:假设我想在本地机器上设置一个 Web 服务器,但我只想要一个专用服务器,因此我决定使用带端口转发的动态 DNS 服务,这样每次 ISP 分配给我(以及许多其他用户)的当前 IP 都会直接指向我的网站。
这是否意味着,与我使用同一 ISP 且目前处于同一 NAT 之后的某个用户的其他网站不可能与我的网站同时访问?因为在这种情况下,我们将共享相同的 IP:PORT,直到我们其中一人从我们的 ISP 获得新的 IP。
如果这是真的,那对我来说似乎很不切实际。我是不是漏掉了什么?有没有办法克服这个可能的问题?
希望我已经表达清楚了,因为英语不是我的母语。
答案1
是的,从技术上来说你是对的 - 但实际上,如果你处于 ISP 控制的 NAT 之后,那么你通常无法首先设置端口转发。
当您位于 CGNAT 后面并与其他客户共享地址时,即使您在自己的路由器上配置一些端口转发规则也无济于事;这些规则对实际“拥有”公共地址的 ISP 路由器没有任何影响 - 只有 ISP 可以提供端口转发。而且在大多数情况下,ISP 会拒绝这样做。
所以是的,这是不切实际的,这就是为什么在实践中首先不这样做的原因。
当人们实际使用端口转发时,它与未实施 CGNAT 的 ISP 一起使用然而– 他们直接将公共 IP 地址分配给单个客户。是的,无论 NAT 发生在哪里,IP:port 仍然只能转发到一台设备……但问题并不那么严重,因为客户之间没有共享 – 只在属于同一 LAN 的设备之间共享。
(对于 HTTP 来说,这甚至不那么重要,因为客户可以设置反向代理并根据域名将 HTTP 请求路由到不同的设备。)
最后,请注意,动态 DNS完全不相关到这个。它在这里所做的一切——好吧,所有这一切常规的DNS 会为 IP 地址分配一个名称,但实际流量并不知道其中的区别。当浏览器尝试建立与您的 Web 服务器的连接时,无论是否使用 DNS,IP 和 TCP 数据包看起来都完全相同。