共计 1222 个字符,预计需要花费 4 分钟才能阅读完成。
看见别人介绍了一下 DNControl,感觉挺有意思,就尝试使用了一下,效果还不错。它可以通过自己写配置文件,通过 DSL(Domain Specific Language)同时管理多个厂商的 DNS 记录。
支持的 DNS 厂商列表:https://docs.dnscontrol.org/service-providers/providers
看了下介绍,似乎还不支持 dnspod,但是支持 cf,所以这里以托管在 cf 的域名为例。
首先创建一个文件夹,存放配置文件。
mkdir /home/docker/dc/
然后创建 cf 的配置文件。这里有两种方式可以使用。
cat > creds.json <<EOF | |
{ | |
"cloudflare": { // 在 dnsconfig.js 文件中需要用到的厂商名称 | |
"TYPE": "CLOUDFLAREAPI", // cloudflare 的认证类型 | |
"accountid": "account-id", // 账户 id,即管理域名右下角那个帐户 id | |
"apitoken": "api-token", // token,需要在 https://dash.cloudflare.com/profile/api-tokens 创建,以便给此认证方式最小的权限 | |
} | |
} | |
EOF | |
cat > creds.json <<EOF | |
{ | |
"cloudflare": { // 在 dnsconfig.js 文件中需要用到的厂商名称 | |
"TYPE": "CLOUDFLAREAPI", // cloudflare 的认证类型 | |
"accountid": "account-id", // 账户 id,即管理域名右下角那个帐户 id | |
"apiuser": "api-user", // cloudflare 登陆的邮箱 | |
"apikey": "api-key" // 这个页面下的 Global API Key | |
} | |
} | |
EOF |
配置完凭据,然后就是配置具体的域名和其解析记录,这里根据自己的需要配置。
cat > dnsconfig.js <<EOF | |
var REG_NONE = NewRegistrar("none"); | |
var DNS_CF = NewDnsProvider("cloudflare"); | |
D("xxx.com", REG_NONE, DnsProvider(DNS_CF), | |
A("@", "1.2.3.4", CF_PROXY_ON) | |
); | |
EOF |
然后执行命令检查配置是否有误。
docker run --rm -it -v /home/docker/dc/:/dns ghcr.io/stackexchange/dnscontrol preview
如果没有报错会提示新增或修改删除了哪些记录,然后执行修改命令即可。
docker run --rm -it -v /home/docker/dc/:/dns ghcr.io/stackexchange/dnscontrol push
提醒:本文发布于549天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完