![无法从外部网络访问 DNS](https://linux22.com/image/1442609/%E6%97%A0%E6%B3%95%E4%BB%8E%E5%A4%96%E9%83%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%20DNS.png)
我在 CentOS 6.5 上设置了一个 MaraDNS 实例。我可以通过执行此操作从安装了 MaraDNS 的本地计算机访问 DNS 记录,nslookup
但无法从其他计算机上的 Internet 访问 DNS 服务器记录。
当我通过互联网从其他机器执行 nslookup 时,我得到:
连接超时;无法访问服务器
我已将 iptables 设置为:
iptables -I INPUT -p udp --dport 53 -j ACCEPT
答案1
检查bind_address
你的/etc/marac
文件正如这里解释的那样:
如果您想要将进程绑定到特定接口,请编辑参数
bind_address
。默认为 0.0.0.0,表示任何接口。如果需要递归和权威 DNS(即添加区域文件),则必须将其更改为需要 maradns 监听的特定 IP 地址,否则它将拒绝启动。
因此,如果您的bind_address
设置为 ,127.0.0.1
那么这将严格将其绑定到本地主机连接。因此,如果您希望接口在本地主机连接之外联网,请将其设置为0.0.0.0
。
我不使用 MaraDNS,所以我不能 100% 确定该参数的命名bind_address
,但这里有更多信息指向被命名的参数ipv4_bind_addresses
:
ipv4_bind_addresses(ipv4_bind_addresses):提供给 MaraDNS 服务器的 IP 地址。这接受一个或多个采用点分十进制表示法的 ipv4 IP(例如“127.0.0.1”),并指定 MaraDNS 服务器将侦听哪些 IP 地址。多个绑定地址用逗号分隔,例如:“10.1.2.3, 10.1.2.4, 127.0.0.1”