![在网络内设置 DNS 服务器](https://linux22.com/image/1369334/%E5%9C%A8%E7%BD%91%E7%BB%9C%E5%86%85%E8%AE%BE%E7%BD%AE%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
好吧,我遇到了一个小问题:我试图将我的 Raspberry Pi 设置为 DNS 服务器(用于过滤和缓存)。Raspberry Pi 在我的网络中,并且有一个来自路由器的 DHCP IP。DNS 服务器在 Raspberry Pi 上运行良好(我可以知道,因为我将笔记本电脑的 DNS 服务器设置为我的 Raspberry Pi 的本地 IP)
但是,现在我想在路由器级别将 Raspberry Pi 设置为 DNS 服务器,这样所有 DHCP 客户端都会将其用作 DNS 服务器。问题是,如果 Raspberry Pi 在网络内部,并且网络将 Raspberry Pi 设置为 DNS 服务器,则无法连接到互联网。
然后我想把 Raspberry Pi 放在主网络之外,放在一个有两个客户端的路由器上:Raspberry Pi 和我的另一个路由器(主网络)。但是,这样我就无法从内部(主)网络设置的 IP 地址访问 Raspberry Pi。
基本上,我希望 Raspberry Pi 拥有由路由器上的 DHCP 服务器分配的 IP(此 IP 是静态的),但我希望路由器使用 Raspberry Pi 作为其 DNS 服务器(这意味着只有 Raspberry Pi 可以访问真正的 DNS 服务器,而所有其他客户端都使用 Raspberry Pi 作为其 DNS 服务器)。我的路由器是 Apple Airport Extreme,我怀疑它是否支持这样的功能(我不确定是否有任何东西支持这样的功能)。
有办法解决这个问题吗?谢谢
答案1
我遇到过类似的问题,因为我的路由器上的 Web 界面非常有限(不允许访问许多功能,如 dhcpd.conf)。我通过安装 dnscrypt 解决了这个问题,它可以加密出站查询并通过端口 443 将它们转发到 OpenDNS。对于你想要的东西来说,这有点过头了,但看起来你没有那么多选择。
答案2
好的,谢谢您的帮助,我知道问题出在哪里了。
在/etc/resolv.conf
文件中,nameserver
被设置为我的路由器的地址。 应该将其更改为8.8.8.8
,因为这会自动将 dnsmasqs 标准查找地址切换为8.8.8.8
– 同时仍在查找 中的任何更改的路由/etc/hosts
。
现在运行正常,唯一的问题是当我重新启动 Raspberry Pi 时,文件resolv.conf
会被重置。如果有人知道为什么会发生这种情况或如何修复它,那就太好了,但这没什么大不了的,因为我通常只在更新时重新启动它
答案3
在
/etc/resolv.conf
文件中,nameserver
被设置为我的路由器的地址。 应该将其更改为8.8.8.8
,因为这会自动将 dnsmasqs 标准查找地址切换为8.8.8.8
– 同时仍在查找 中的任何更改的路由/etc/hosts
。
你确定吗?在我看来,你完全绕过了你自己的本地名称服务器,而是使用了谷歌的名称服务器。你能用这种方法给你的机器提供静态本地 IP 地址吗?
编辑:你可以这样判断DNSmasq 安装和配置,Google 公共 DNS 的响应时间始终约为 36 毫秒。如果您使用的是 Google 的 DNS,您的 DNS 查询将始终约为 36 毫秒。如果您使用的是自己的本地名称服务器,DNS 查询时间应该能够降至接近 1 毫秒。为您的机器提供静态 IP 也是另一个肯定的迹象。
我想在路由器级别将 Raspberry Pi 设置为 DNS 服务器,这样所有 DHCP 客户端都会将其用作 DNS 服务器。问题是,如果 Raspberry Pi 在网络内部,并且网络将 Raspberry Pi 设置为 DNS 服务器,则无法连接到互联网。
我的 DNSmasq DHCP&DNS 服务器位于我的 DSL 路由器后面,我可以使用它为本地机器提供 DNS,同时所有与互联网的连接都正常。请参阅DNSmasq 安装和配置了解详情。
只是一个想法。