ddclient 与 cloudflare 未更新

ddclient 与 cloudflare 未更新

使用 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 版本的问题。问题仍未解决。

https://github.com/ddclient/ddclient/issues/361

建议的替代方案是使用https://github.com/timothymiller/cloudflare-ddns

相关内容