一个公共 IP、多个私有 IP、DNS 服务器和多个服务器

一个公共 IP、多个私有 IP、DNS 服务器和多个服务器

我对这些话题有很多未解的问题。那么,让我们开始吧。

首先,我不是服务器和网络专家。我是一名普通的 PHP 开发人员。我读过几乎所有关于这些事情的文章。但无法理解并找到解决方案。

我有一份新工作,老板希望我在一台物理服务器上安装 Windows Server 2012 R2,并在该机器上安装 2 台虚拟机。第一台虚拟机是 Windows Server 2012 R2,另一台是 Ubuntu 14.04。目标是将 Ubuntu 服务器设置为 DNS、PHP 等服务器,将 Windows 服务器设置为 ASP.NET 服务器。

我可以使用 Hyper-V 安装和配置所有这些。当我尝试设置网络和 DNS 服务器时,问题就出现了。

我们有一个带调制解调器的光纤互联网连接,并且有“1 个公共 IP”。假设有203.0.113.9。我们有192.168.x.x私有 IP。我已使用私有 IP 在服务器上配置了所有静态 IP。假设物理机器有192.168.2.2,虚拟机 Windows 有192.168.2.3,虚拟机 Ubuntu 有192.168.2.4。我可以使用本地网络上的这些私有 IP 连接这些服务器,就像使用远程桌面一样。

我已经使用私有 IP 配置了 Ubuntu 服务器和 BIND。我已经203.0.113.9在 GoDaddy 面板上配置了 ns1.example.com 和 ns2.example.com IP。我已经在 GoDaddy 面板上将 example.com 的名称服务器配置为 ns1.example.com 和 ns2.example.com。我在 Ubuntu 服务器上为 example.com 放置了一个 index.html 文件。如果我尝试在 Ubuntu 服务器上访问 example.com,它会正常工作。我可以看到 index.html。但是当我尝试在其他计算机上访问 example.com 时,它不起作用。

我该如何实现这些功能?我认为这与 BIND 配置或服务器配置无关。这全都与公共和私有 IP 有关。

让我举几个例子。

我想访问 Ubuntu 服务器的远程桌面,或者我家里的虚拟机 Windows 或物理机。但是有“1 个公共 IP”地址。那么计算机如何知道我要访问哪个服务器?

我想在虚拟 Windows 机器上托管一个 ASP.NET 网站,在虚拟 Ubuntu 机器上托管一个 PHP 网站。假设 ASP.NET 网站是 example1.com,PHP 网站是 example2.com。我应该如何配置区域文件?配置区域文件时应该使用哪些 IP 地址?公共还是私有?

我知道我可以使用物理服务器来完成所有这些工作。但也存在一个问题。当我使用公共 IP 而不是私有 IP 配置静态 IP 时,我无法连接互联网。

顺便说一句,如果这样可行,那仍然不能解决我的问题。因为我需要物理服务器上的 2 个虚拟机。

请帮助我理解 IP 的概念。它是如何工作的?我该如何配置它?我看过很多关于 IP、网关、子网掩码的视频,但没有一个能回答我的问题。我可能在错误的话题上寻找答案。所以,我来这里了。请帮助我摆脱这种困境。

答案1

您需要 NAT 和端口转发...

     公共 IP
         |
 -----------------
 | NAT |
 -----------------
  | |
 TCP 80 |
 UDP 53 |
  | |
Ubuntu 其他一切
服务器私有IP
私有 IP


Ubuntu 机器上既有名称服务器,也有网络服务器。因此,需要配置 NAT 路由器,以将 TCP 80 和 UDP 53 转发到 Ubuntu 机器的私有 IP。

您确实应该认真考虑是否真的拥有 2 个名称服务器,而不是假装拥有。拥有两个名称服务器的要求是有原因的。

相关内容