带有 dnsmasq 的公共 DNS 服务器在 LAN 上运行,但在 WAN 上运行不上(aws ec2 服务器)

带有 dnsmasq 的公共 DNS 服务器在 LAN 上运行,但在 WAN 上运行不上(aws ec2 服务器)

我想设置一个公共 DNS 服务器,该服务器使用某些域的服务器主机文件,然后对于所有其他查询则使用 Google 的 DNS。

因此,我使用以下最小配置设置了 dnsmasq:

no-resolv
server=8.8.4.4
server=8.8.8.8
interface=eth0
no-dhcp-interface=eth0
log-queries
log-dhcp

如果我nslookup mydomain.com 127.0.0.1在服务器上运行,我会从服务器的 hosts 文件返回 mydomain.com 的正确 IP 地址。

但是,如果我将其替换127.0.0.1为服务器的公共 IP,无论我在服务器上还是在其他主机上运行此命令,都会出现以下错误:

;; connection timed out; no servers could be reached

该服务器是关闭了 iptables 的 Amazon Linux EC2 实例,并且服务器的防火墙策略为 0.0.0.0/0 打开了 tcp 端口 53。eth0是服务器的唯一网络连接。

如果我netstat -vatn在服务器上运行,我可以看到有东西正在监听 TCP 端口 53 0.0.0.0

Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN

我可以看到服务器上的端口 53 是打开的,因为我可以成功打开连接telnet my-server-ip 53,但我从未通过该连接从服务器收到任何响应。

这让我相信我的 dnsmasq 配置可能缺少了某些东西。有人有什么想法吗?

答案1

DNS 需要两个都UDP 和 TCP 端口 53,因此只需53/udp在您的安全组中打开它就可以开始工作。

相关内容