主要流程
最终目的是
让 movie.aaabbb.com 能解析成家中的公网ip
最终的api为
1
2
3
4
5
|
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$tzone_id/dns_records/$trecord_id" \
-H "X-Auth-Email: $auth_email" \
-H "X-Auth-Key: $auth_key" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"file.awslop.com","content":"$tip","ttl":{},"proxied":false}' ;
|
以上命令中需要的参数有 tzone_id、 trecord_id、 auth_email、auth_key、 tip
1
2
3
4
5
6
7
8
9
10
11
12
|
#通过请求其他网站,得到自身公网ip
tip=$(curl -s http://ipv4.icanhazip.com)
#cloudflare的登录邮箱
auth_email、auth_key
https://dash.cloudflare.com/xxx/profile/api-tokens
查看 global api key即可
tzone_id、 trecord_id
这两个参数分别表示 aaabbb.com的id
与movie.aaabbb.com的id
|
取得 zone_id、record_id
首先是在购买域名的网站 将你的域名解析转到cloudflare上面
然后登录 cloudflare 对你的域名进行配置
假设现有域名 aaabbb.com
需要将 movie.aaabbb.com 映射到家里的公网ip上
添加一条记录
type=A name=movie ttl=auto
ipv4=先随便写一个
proxy-status=dns only 橙色表示被cdn代理 灰色是无代理
如果是静态文件服务 可用考虑设置成cdn代理模式
参数准备
1
2
3
4
5
|
auth_email=hello@qq.com
auth_key=xx1122yyzz
record_name="movie.aaabbb.com"
record_type="A"
|
获取 zone_id 与 record_id
1
2
3
4
5
6
7
8
|
###tzone_id=zzzxxyy
zoneName=aaabbb.com
tzone_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zoneName" \
-H "X-Auth-Email: $auth_email" -H "X-Auth-Key: $auth_key" -H "Content-Type: application/json" \
| grep -Po '(?<="id":")[^"]*' | head -1 )
###trecord_id=rrrxxyy
trecord_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&type=$record_type" -H "X-Auth-Email: $auth_email" -H "X-Auth-Key: $auth_key" -H "Content-Type: application/json" | grep -Po '(?<="id":")[^"]*')
|
执行更新ddns命令
1
2
3
4
5
6
7
8
9
10
11
|
auth_email=xx
auth_key=xx
tip=$(curl -s http://ipv4.icanhazip.com)
tzone_id=zzzxxyy
trecord_id=rrrxxyy
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$tzone_id/dns_records/$trecord_id" \
-H "X-Auth-Email: $auth_email" \
-H "X-Auth-Key: $auth_key" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"movie.aaabbb.com","content":"$tip","ttl":{},"proxied":false}' ;
|
openwrt中配置
openwrt中支持cloudflare的ddns
所以不用自己写脚本去执行
先在cloudflare添加好 movie记录
然后在 服务-动态dns中 添加任务
1
2
3
4
5
|
检查域名 movie.aaabbb.com
DDNS 服务提供商 选择 cloudflare
域名 movie@aaabbb.com
用户名 即登录邮箱
密码 非密码而是上面的 global api key
|
文章作者
duansheli
上次更新
2019-12-25
(325c7b3)