无法连接到本地计算机上的 dnsmasq,端口已打开但连接被拒绝

无法连接到本地计算机上的 dnsmasq,端口已打开但连接被拒绝

我正在运行 Scientific Linux 6.3,刚刚将机器更新为 dnsmasq-2.48-13.el6.x86_64。该机器的本地 IP 为 192.168.1.100。我有一个本地缓存 DNS 设置,在更新之前一直有效。

/etc/dnsmasq.conf配置:

strict-order
listen-address=192.168.1.100
bind-interfaces
cache-size=5000

我确认 dnsmasq 正在运行,端口在我启动和停止 dnsmasq 时打开和关闭。

$ netstat -nl # shows that the port was opened
Proto Recv-Q Send-Q Local Address           Foreign Address        State
tcp        0      0 192.168.1.100:53        0.0.0.0:*              LISTEN
udp        0      0 192.168.1.100:53        0.0.0.0:*

但尝试解决失败

$ nslookup google.com 192.168.1.100
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

即使尝试 telnet 也失败

$ telnet 192.168.1.100 53
Trying 192.168.1.100...
telnet: connect to address 192.168.1.100: Connection refused

我在 /var/log/messages 中没有看到任何与 dnsmasq 相关的内容。停止 iptables 没有帮助。我不知道从这里该去哪里。

答案1

根据您的附加信息,您需要将此行添加到dnsmasq.conf我的 Slackware 机器中/etc/

listen-address=127.0.0.1

这是除另一listen-address行之外的内容。您可以配置多个“监听地址”。我的猜测是,您还需要注释掉“bind-interfaces”行,但这只是一个猜测。

您还应该检查resolv-file参数值是什么。该文件是否存在,其内容有意义吗?你可能不想要这样的东西:

resolv-file=/etc/resolv.conf

因为这将使所有调用gethostbyname()跳过 using dnsmasq,或者dnsmasq尝试使用自身来解析名称,具体取决于/etc/resolv.conf.

dnsmasq更改后不要忘记重新启动。

相关内容