我需要解释如何与远程局域网上的两个 Web 服务器建立 TCP/IP 连接。Web 服务器有私有 IP 地址。
假设网站是https://justanexplanation.org
DNS 会返回服务器所在的路由器/局域网的公共地址吗?据我所知,这是 DNS 唯一能知道的地址。
但是,如果我只知道公共 IP,解封装将如何继续,‘目标’局域网如何知道哪个服务器适合这个连接,因为它们都在端口 80 上运行。
我很困惑。
谢谢
答案1
您可以使用端口转发来解决这个问题。在一台服务器上转发端口 80 > 80,在另一台服务器上转发端口 81 > 80。
然后从外面你可以做www.domain1.com到达第一台服务器www.domain2.com:81去到达另一个。
另一种选择是在同一台服务器上运行两个站点,并让网络服务器自己决定要提供哪些页面。
答案2
考虑一个负载均衡器。此服务将连接分发到后端服务器。通常使用反向代理实现。连接路由规则是任何你想要的,通常基于 HTTP 主机标头或后端健康状况。
DNS 会返回服务器所在的路由器/局域网的公共地址吗?据我所知,这是 DNS 唯一能知道的地址。
DNS 只是一个数据库,可以保存任何你喜欢的 IP 地址和其他数据。当然,RFC 1918 私有地址无法通过互联网路由,你需要公共 IP 空间。
如果缺少全局可路由的 IP 地址对您来说是个问题,请实施 IPv6。v6 有足够的地址空间,可让每台设备都拥有全局可路由的 IP 地址。您可能仍会出于各种原因需要负载平衡器类型的服务,但端到端连接更容易理解。
答案3
DNS 会返回给我服务器所在路由器/局域网的公共地址吗?
DNS 将返回所要求返回的内容。主要问题是 - 您是否拥有静态 IP?或者没有?无论如何,是的,事情应该到此结束。
据了解,这是 DNS 可以知道的唯一地址。
不,DNS 可以识别输入的任何地址。这是唯一有意义的地址 - 但基本上,你会问“我可以开车去哪里”。无论你想要去哪里。你可以将域名指向你想要的任何 IP。
但是,如果我只知道公共 IP,解封装将如何继续,‘目标’局域网如何知道哪个服务器适合这个连接,因为它们都在端口 80 上运行。
就像出租车一样 - 有人告诉司机。在这种情况下,出租车是处理网络的路由器。将其配置为端口转发。如何配置?手册会有所帮助。