我想链接mydomain.com
到192.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 文件之间切换(也可能让脚本重置网络接口)。