使用 Cloudflare DNS 服务器在 Namecheap 注册域名。在此设置之前,我只是使用 Namecheaps DNS,直到意识到我无法使用他们的 Traefik 生产 API。在我进行此设置时,使用 ddclient 更新到 Namecheap 工作正常。
现在我正在使用 Cloudflare DNS,我正在尝试使用 ddclient 更新记录。似乎没有什么效果,我尝试了许多不同的组合,并且我还将我的域名放入其中,Development mode
以便在测试期间不会缓存更改。
我的 cloudflare 仪表板中有两个 A 记录:mydomain.com
以及子域名login
这是我的ddclient.config
:
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
pid=/var/run/ddclient/ddclient.pid # record PID in file.
ssl=yes # use ssl-support.
##
## CloudFlare (www.cloudflare.com)
##
use=web, \
protocol=cloudflare, \
zone=<mydomain.com>, \
ttl=1, \
login=<my email login> , \
password=<my DNS-Edit enabled API key> \
login.<mydomain>.com
我也尝试过只添加下面的子域名(不带完整域名)login
并添加web=dynamicdns.park-your-domain.com
到文件中,但似乎没有任何效果。
答案1
这有点像僵尸页面,但它出现在谷歌搜索中,所以我想把工作示例放在这里。
如果您转到 ddclient github 页面并浏览 ddclient.in 的源代码,搜索“cloudflare”,您将看到示例以及有关如何使用 ddclient 3.9.1 使其工作的所有详细信息。
选项一:使用全局 API 密钥
ddclient.conf 的最后一节
#
# Change ip address for example.com at cloudflare
# (less secure as uses global API key)
#
protocol=cloudflare, \
zone=example.com, \
ttl=1, \
login=your_email_for [email protected], \
password=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
example.com
逗号、空格和换行符很重要。确保反斜杠后没有空格。
选项二:使用具有有限权限的 API 令牌
a. 转到 Cloudflare 仪表板并创建具有 Zone-DNS-Edit 和 Zone-Zone-Read 权限的 API 令牌。如果 API 令牌上的权限是其他权限,则它将不起作用。
b. ddclient.conf 的最后一节
#
# Using token with Zone-DNS-Edit and Zone-Zone-Read permissions
#
protocol=cloudflare, \
zone=example.com, \
ttl=1, \
login=token, \
password=XxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
example.com
再次强调,格式化似乎很重要。当反斜杠后有多余的空格时,我收到了错误消息。如果您使用令牌,它将被发送为“Bearer xxxxxxxx”。在 ddclient 中,“Bearer”会自动添加到前面;您只需输入字母数字字符串即可。阅读 perl 源代码以了解更多详细信息。
已在 OpenBSD 6.9 和 7.0 以及 ddclient 3.9.1 上测试并运行。
答案2
这似乎是 ddclient 未升级到新 cloudflare api 版本的问题。问题仍未解决。