如何始终同时拥有本地 DNS + Google DNS

如何始终同时拥有本地 DNS + Google DNS

我需要从 Windows PC 解析本地网络设备和公共互联网域。我本地 ISP 的 DNS 服务器在解析公共域方面相当糟糕,因此我想使用 Google DNS 以获得更高的可靠性,但也希望能够访问我子网中的本地网络资源。

虽然我可以静态配置 NIC 属性以同时具有主 DNS 和辅助 DNS 设置,但是我碰巧也带着我的笔记本电脑在网络之间移动。(家庭\办公室) 因此我希望本地 DNS 始终动态设置,但 Google DNS 始终保持静态配置在我的 NIC 上。

从 DHCP 获取 DNS 并在其上静态添加 GoogleDNS 的最佳方法是什么。

答案1

我认为最好的方法是拥有本地转发 DNS 服务器。

也许您的 DNS 服务器正在联系根服务器?您只需要让它将请求快速转发到某个地方 - Google。

DNS 服务器可以存储您的本地记录,当找不到记录时,它会将请求转发到 Google 的 DNS 服务器。您还可以在服务器上缓存结果,以获得更好的性能。

DNSMasq、unbound、bind 执行此操作。如果你使用的是 Windows,我无法给出任何建议 -你还没有提到你的 DNS 服务器操作系统。我认为有些路由器也内置有此功能。

根据这篇文章,DNSMasq 默认转发到 /etc/resolv.conf 中的任何内容。因此,您需要做的似乎就是添加本地主机条目。

https://wiki.debian.org/HowTo/dnsmasq

因此你会得到这个:

request -> local dns (return if found) -> google dns ->
result -> local dns (add to cache) -> requester

Unbound 可在 Windows 上运行。我列出的其他一些人可能也一样。我相信你有很多选择。

https://www.unbound.net/

现在你已经进一步解释了你的情况 您需要在工作站上配置 DNS 服务器,并告知它有关任何内部域的信息,以及它应该查询您现有的慢速 DNS 服务器以获取该信息。然后它可以查询 Google 以获取其他所有内容。您必须将工作站配置为查询 127.0.0.1,而不是常规的慢速 DNS 服务器。如果启用缓存,您可能会发现内部查找有时也会更快。

答案2

如果您使用的是 Windows,这应该在管理 PowerShell 窗口中运行;

$IntName = "Wi-Fi" ; Set-DnsClientServerAddress -InterfaceAlias $IntName -ResetServerAddresses ; Set-DnsClientServerAddress -InterfaceAlias $IntName -ServerAddresses ((Get-DnsClientServerAddress -InterfaceAlias $IntName).ServerAddresses,"8.8.8.8")

它基本上会重置您的 DNS 设置以获取 DHCP 提供的 DNS 服务器,并将其转换为静态设置并在最后添加 8.8.8.8。

“Wi-Fi” 是我的网络连接名称。您的网络连接名称可能是“本地连接”、“以太网”或类似的名称。

也可能有效。

相关内容