本文主要介绍coredns的unbound插件进行编译安装的过程及常用的配置方法。
coredns官方的unbound
文档unbound (coredns.io),以及unbound
插件的github地址coredns/unbound: CoreDNS plugin that performs recursive queries using libunbound (github.com),此前已经介绍过coredns编译其他插件的方法,有需要的同学可以先回顾一下。
此外,unbound插件虽然是coredns中的External Plugins,但是从详情页面中我们可以看到Maintained by CoreDNS: CoreDNS maintainers take care of this plugin.
,说明这个插件是官方维护的,在稳定性可靠性以及后续更新维护上都有不错的保证,应该是可以放心使用的。
1、配置环境
要使用CGO特性,需要安装C/C++构建工具链,在macOS和Linux下是要安装GCC,在windows下是需要安装MinGW工具。同时需要保证环境变量CGO_ENABLED
被设置为1,这表示CGO是被启用的状态。在本地构建时CGO_ENABLED
默认是启用的,当交叉构建时CGO默认是禁止的。比如要交叉构建ARM环境运行的Go程序,需要手工设置好C/C++交叉构建的工具链,同时开启CGO_ENABLED
环境变量。
以CentOS8为例,最好提前安装好gcc
、unbound-devel
和unbound-libs
[/home/coredns]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[/home/coredns]# go env | grep "CGO_ENABLED"
CGO_ENABLED="1"
[