unbound是一种验证型、递归型、缓存型的DNS解析器,可用于在系统中搭建DNS服务。本文介绍了Alibaba Cloud Linux 3系统的ECS实例中unbound服务启动失败的原因以及解决方案。
问题描述
在Alibaba Cloud Linux 3系统中安装了unbound-1.7.3/unbound-1.16.2
版本软件包后,unbound
服务启动失败。
系统显示类似如下所示。
# sudo systemctl start unbound
Job for unbound.service failed because a timeout was exceeded.
See "systemctl status unbound.service" and "journalctl -xe" for details.
问题原因
在unbound-1.7.3/unbound-1.16.2
版本的unbound
服务中,ExecStartPre指令发生了变化。新增了通过DISABLE_UNBOUND_ANCHOR变量判断是否执行unbound-anchor
命令,同时新增的-f /etc/resolv.conf -R
参数指示unbound-anchor
命令访问根服务器,以设置或更新用于DNSSEC(Domain Name System Security Extensions)验证的根信任锚点。但是,在没有公网的环境下,unbound-anchor
命令无法访问根服务器查询根信任锚点,从而导致unbound
服务启动失败。
解决方案
在没有公网的环境下,通过设置环境变量DISABLE_UNBOUND_ANCHOR=yes
,可以禁止unbound-anchor
命令访问根服务器,从而确保服务能够成功启动。
打开
/etc/sysconfig/unbound
文件。sudo vim /etc/sysconfig/unbound
按
i
键进入编辑模式,添加以下内容。DISABLE_UNBOUND_ANCHOR=yes
按
Esc
键,输入:wq
后按Enter
键,保存配置。启动
unbound
服务。sudo systemctl start unbound
相关文档
关于unbound-anchor
命令的详细说明,请参见Unbound。
文档内容是否对您有帮助?