仅在本地网络中使用 /etc/hosts 解析域名

仅在本地网络中使用 /etc/hosts 解析域名

我想链接mydomain.com192.168.1.X 仅当我连接到本地网络时。否则,我想让 DNS 服务器解析它(如果我在我的网络之外)。

现在,当我执行时ping mydomain.com,它会尝试连接到我所在的任何地方,因为我的文件中192.168.1.X有一行。192.168.1.22 mydomain.com/etc/hosts

答案1

您需要使用网络上的内部 DNS 服务器来托管 mydomain.com 的 DNS 区域。然后,当您连接到内部网络时,mydomain.com 将由您的内部 DNS 服务器解析(假设您在内部使用 DHCP 服务器,并且您的计算机配置为使用 DHCP 进行 IP 地址配置,并且 DHCP 服务器配置为通过 DHCP 向您提供内部 DNS 服务器)。当您未连接到内部网络时,mydomain.com 将由您在其他网络上使用的任何 DNS 服务器解析。

使用 Hosts 文件的问题在于它优先于客户端 TCP/IP 配置中配置的 DNS 服务器,因此无论您连接到什么网络,mydomain.com 总是会解析 Hosts 文件中的内容。

答案2

创建第二个空白的 HOSTS 文件。创建一个脚本以用一个文件替换另一个文件:

  • 主机-> HOSTStmp
  • HOSTS2 -> 主机
  • HOTSTtmp -> HOSTS2

根据需要运行脚本在 HOSTS 文件之间切换(也可能让脚本重置网络接口)。

相关内容