动态IP自动更新到Cloudflare DNS
你有一个动态IP,通过域名访问你的服务器,那么你需要一个动态DDNS服务。可以使用Cloudflare的API实现动态IP自动更新到Cloudflare的DNS记录。
通过過 Cloudflare API 更新 DNS IP
工作思路
Cloudflare提供了很多API,可以通过API实现对DNS记录的增删改查。可以使用Cloudflare的API来实现动态IP的更新。
首先,我们需要一个Cloudflare的账号,并且在Cloudflare上添加一个域名。
其次,访问 https://dash.cloudflare.com/profile/api-tokens 获取你的API Key,注意给予该API Key适当的权限(区域资源)。
最后,我们需要写代码来实现动态IP的更新。
CloudFlare API 动态更新域名ip address
使用cloudflare提供的api进行更新域名ip。域名托管在 Cloudflare,可以通过 Cloudflare 官方提供的 API 去实时更新域名解析记录。
DNS只是提供域名转换为IP的服务
如果你是指DDNS(动态域名, 类似于花生壳等的服务), CloudFlare因为DNS解释更新快, 又提供非常好的API, 可以写脚本或者程序来实现.
基本思路是, 定时访问一些网站, 比如http://ipv4.icanhazip.com/ 获取当前环境的外网IP,;
然后调用CloudFlare的API把域名更新指向这个IP.
你的网关需要设置好NAT,把对应的端口映射到你的内网某台机器上.
具体实现
.NET 7.0
// Variables
string xAuthKey = "UltraPrivateSecretKeyCloudFlare"; // Global API Key
string xAuthEmail = "[email protected]"; // Domain owner email in cloudflare
string zoneIdentifier = "Domain identifier"; // Domain identifier
// Client
CloudFlareDnsClient cloudFlareDnsClient = new CloudFlareDnsClient(xAuthKey, xAuthEmail, zoneIdentifier);
// Create record ipv4; with proxied with cloudflare and TTL in 60 seg / 1 min
Record record01 = await cloudFlareDnsClient.Record.Create("test-01.deployrise.com", "8.8.8.8", false, RecordType.A, 60, comment: "This commentary it's optional");
// Create record cname; without proxied and ttl in 120 seg / 2 min
Record record02 = await cloudFlareDnsClient.Record.Create("test-02.deployrise.com", "google.com", false, RecordType.CNAME, 120, comment: "This commentary it's optional");
source:https://github.com/ljchuello/CloudFlare.Dns
Useful links
https://github.com/timothymiller/cloudflare-ddns py
blog https://blog.toright.com/posts/7333/cloudflare-ddns
https://blog.csdn.net/Imkiimki/article/details/124564356
https://blog.cunoe.com/blog/cf-ddns