使用 dnsmasq 解析本地局域网中的所有 DNS 查询

使用 dnsmasq 解析本地局域网中的所有 DNS 查询

我是新手,正在尝试托管 LAMP 服务器。我在 Fedora 24 机器上托管了一个 Apache 服务器。为了好玩,我想为服务器设置一个域名,比如说。www.testpage.ac.in现在,我认为在我的 /etc/hosts 文件上有一个相应的名称解析条目会很有帮助。而且,它成功了。此外,我想将同样的功能扩展到我的 LAN 上运行的所有其他机器。虽然对所有其他计算机的相应 /etc/hosts 文件进行类似的输入会更容易,但我想做不同的事情。我想拥有一种 DNS 类型的功能。由于我不想更改我们机构路由器的配置设置,我在网上了解了 dnsmasq 后决定尝试使用它。所以,我的配置文件如下所示 -

/etc/hosts

192.168.1.190 www.testpage.ac.in    
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4    
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf

nameserver 127.0.0.1

/etc/dnsmasq-resolv.conf

nameserver 8.8.8.8
nameserver 192.168.1.1 

/etc/dnsmasq.conf

resolv-file=/etc/dnsmasq-resolv.conf
interface=enp2s0
listen-address=127.0.0.1

journalctl -u dnsmasq 的输出

Mar 29 20:04:26 AUTO dnsmasq[3398]: started, version 2.76 cachesize 150
Mar 29 20:04:26 AUTO dnsmasq[3398]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop
Mar 29 20:04:26 AUTO dnsmasq[3398]: reading /etc/dnsmasq-resolv.conf
Mar 29 20:04:26 AUTO dnsmasq[3398]: using nameserver 8.8.8.8#53
Mar 29 20:04:26 AUTO dnsmasq[3398]: using nameserver 192.168.1.1#53
Mar 29 20:04:26 AUTO dnsmasq[3398]: read /etc/hosts - 2 addresses

接下来,我将局域网上每台其他计算机的 DNS 设置更改为主机的 DNS 设置(192.168.1.190)。

所有其他机器的 /etc/resolv.conf

nameserver 192.168.1.190

我能够从主机 (192.168.1.190) 访问 www.testpage.ac.in。我也可以从这台机器访问互联网。

我希望像往常一样从 LAN 上的每台其他计算机访问互联网,但是却无法做到。此外,我无法通过其域名 (www.testpage.ac.in) 访问托管服务器,但如果输入其 IP 地址则可以访问。

我认为我的局域网上的计算机无法正确解析 DNS 查询,这实际上造成了麻烦。任何有关此问题的见解都将不胜感激。

答案1

我假设你用作服务器的机器上有防火墙,阻止端口 53 [ DNS ] 上的入站请求。从命令行运行 iptables -vnL 来查看防火墙的设置。你可以暂时使用

iptables -I INPUT -p udp --dport 53 -j ACCEPT 
iptables -I INPUT -p tcp --dport 53 -j ACCEPT

允许端口 53 上的流量通过防火墙。

还要检查您的 dnsmasq.conf 文件是否没有任何“interface=”行,或者是否有一行用于您的 LAN 接口。

相关内容