如何将 dnsmasq 配置为 DNS 服务器,与 apache 一起,以便指向内部 IP 的 DNS 域可由同一服务器和 LAN 访问

如何将 dnsmasq 配置为 DNS 服务器,与 apache 一起,以便指向内部 IP 的 DNS 域可由同一服务器和 LAN 访问

我的家庭网络中有一个运行 apache web 服务器的 web 服务器。不幸的是,我的路由器不允许 NAT 环回,因此测试我自己的项目或访问其他自托管服务(owncloud、seafile 等)只能在我连接到 LAN 时使用我的内部服务器 IP 以及在 LAN 之外使用我的 DNS 域来完成。显然,这种来回往返并不理想。

在考虑了可能的解决方案之后,我得出结论,解决指向我的内部 IP 的 DNS 域的最不痛苦的方法是托管我自己的 DNS 服务器并将我的路由器配置为使用我的本地 DNS 服务器。dnsmasq 似乎是个不错的选择。

但是,当我准备在运行 apache、docker 和其他服务的同一台服务器上安装 dnsmasq 时,我想知道配置 dnsmasq 的干扰最小的方法是什么,这样它就不会意外破坏本地服务器上正在运行的其他服务。此外,我想知道 dnsmasq 是否允许服务器(localhost)访问重定向回自身的 DNS 域,因为我可能必须将公共地址映射到其内部 IP,以便任何连接到我的局域网的设备都可以正确访问它(example.com --> [局域网中本地服务器的 IP] 而不是 example.com --> 127.0.0.1)。有没有办法解决 dnsmasq 中的这个问题,以便所有局域网设备(包括本地服务器)都可以使用公共地址访问同一站点?

更新 #1

安装之前,运行:sudo nmap -sn 192.168.10.0/24查看我的 LAN 设备的 IP 将返回一行,其中包含我的服务器的昵称(我不确定是谁分配的昵称,可能是路由器?)及其 IP,如下所示: Nmap scan report for myserver.lan (192.168.10.130)

但是,在安装 dnsmasq 并将其用作路由器配置中的默认 DNS 服务器后,我的服务器的昵称就消失了。如果我这样做,sudo nmap -sn 192.168.10.0/24它将返回一行包含Nmap scan report for 192.168.10.130。如果我尝试从 LAN 中的另一台计算机访问我的服务器(就像在使用 dnsmasq 之前所做的那样),通过输入 myserver.lan,则不再重定向到我的本地服务器。

相关内容