为什么 DNS 服务器只为自己解析 DNS 查询?

为什么 DNS 服务器只为自己解析 DNS 查询?

我自己的运行 dnsmasq 的 DNS 服务器有问题。

这是/etc/dnsmasq.conf(仅未注释的行):

# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
no-resolv

# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1
server=151.100.4.2
server=151.100.4.13

当我尝试解决来自服务器的查询时,一切都很好:

$ nslookup google.com
Server:  127.0.0.1
Address:  127.0.0.1#53

Non-authorative answer:
Name:    google.com
Address: 142.250.184.78
Name:    google.com
Address:  2a00:1450:4002:405::200e

但是,当我ping google.com从网络中的另一台主机尝试时,DNS 不会回复查询,即使它收到了查询。以下是tcpdumpDNS 服务器上的输出:

$ sudo tcpdump -n host 100.100.2.100
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:35:43.517755 IP 100.100.2.100.54996 > 100.100.1.2.53: 12795+ A? google.com. (28)
11:35:43.517844 IP 100.100.2.100.54996 > 100.100.1.2.53: 51213+ AAAA? google.com. (28)
11:35:48.522750 IP 100.100.2.100.54996 > 100.100.1.2.53: 12795+ A? google.com. (28)
11:35:48.522818 IP 100.100.2.100.54996 > 100.100.1.2.53: 51213+ AAAA? google.com. (28)
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel

另一台主机能够访问网络:果然,它 ping 通 8.8.8.8 或任何其他 IP。问题仅在于名称解析。

我在网上寻找有同样问题的人,但我没有找到任何东西。我真的不知道如何尝试解决这个问题,因为 DNS 似乎可以工作并且它接收查询,但它只是不回复它们。

答案1

因为dnsmasq可能只回答地址 127.0.0.1 上的查询(仅限同一台计算机)。

阅读:-i, --interface=

以 root 身份检查netstat -4panu以查找 dnsmasq 正在侦听哪些端口/i 接口。

相关内容