如何根据位置实现将同一主机名解析为不同的 IP 地址

如何根据位置实现将同一主机名解析为不同的 IP 地址

我有安装了 ownCloud 的个人网络服务器。该网络服务器没有公共 IP 地址因为我的互联网连接不提供此功能。我订购了具有公共 IP 地址的虚拟 Linux 网络服务器,我仅将其用于通过 SSH 进行端口转发,以允许我的 ownCloud 服务器从互联网访问。一切正常,我通过主机名访问 ownCloud - 例如:“mytunneledowncloud.com”。

但由于我的互联网连接速度有限,我想在家时通过 LAN 私有 IP 地址同步 ownCloud 来保存一些数据,而不是通过我的虚拟服务器的 ssh 隧道公共 IP 地址。 我在想这是否可能。我需要解决“mytunneledowncloud.com”作为:

  • 私有 IP 地址- 如果我在家里的局域网上
  • 公网 IP 地址- 以防我不在家里的局域网上

说实话,我知道这是一个有点“荒谬”的要求,但也许有一些“解决方法”。

注意:我在所有服务器和 PC 上都使用 Ubuntu。

答案1

最后我找到了“问题”的解决方案,非常简单。我遵循以下步骤:

  1. 在我的家庭服务器上安装了 dnsmasq,因此它将成为一个非常简单的 dns 服务器
  2. 在我的家庭服务器中,我在 /etc/hosts 中添加了一个包含家庭服务器私有 IP 地址的条目,域名为“mytunneledowncloud.com”
  3. 配置我的家庭服务器的 DHCP 守护程序,将家庭服务器的私有 IP 作为 DNS 服务器分配给客户端

现在它运行正常。我的家庭服务器现在充当 dhcp/dns/web 服务器,并将自己的私有 IP 作为 dns 服务器分配给连接的 LAN 客户端。然后客户端将 DNS 解析请求发送到我的家庭服务器。我的家庭服务器的 dnsmasq 会查看其 /etc/hosts 中是否有请求的域名的条目,如果匹配,则从那里提供 IP,如果没有匹配,则使用“互联网”的 DNS 服务器来解析它。

相关内容