是否可以使用 /etc/hosts 值,同时仍(快速)恢复到其 DNS 值?

是否可以使用 /etc/hosts 值,同时仍(快速)恢复到其 DNS 值?

我的家庭网络上托管着一台服务器。通常,我会从其 DNS 值(例如example.com)访问它。但是,我的 ISP 的设置很尴尬,我无法从网络内部访问家庭网络的外部 IP,因此当我在家时,我不得不更改我使用的值。这对某些事情来说很困难。

我可以设置一个/etc/hosts指向我的本地 IP 的值example.com,但如果它在访问设备时遇到哪怕是一点点麻烦,就让它立即回退,这样我在其他地方的工作就不会变慢吗?

答案1

解析(DNS 解析)的工作方式是应用程序向解析器请求与主机名对应的 IP 地址。解析器会尝试多种方法(可配置),其中包括/etc/hosts,并将第一个成功来源的地址返回给应用程序。

通常不能要求解析器合并来自所有来源的信息;它使用找到的第一个结果,在这种情况下它始终仅返回来自 /etc/hosts 的信息。

此外,解析器无法控制实际的连接建立。应用程序本身决定在创建连接时使用哪个地址,以及在尝试下一个连接之前要等待多长时间(如果有的话)。

因此,不可以,您不能自动回退“如果应用程序在访问设备时遇到哪怕是一点点麻烦”,除非您专门对应用程序进行编程以使其以这种方式运行。

但是,您可以检测您是否在家庭网络中,并根据是否在家庭网络中使用不同的配置。

这需要在您的笔记本电脑上编写一些脚本,或者需要您控制的家庭网络中的 DNS(代理)服务器。

相关内容