国内的动态域名市场中能够免费使用的主要有如下供应商:1、花生壳;2、公云。
花生壳是我以前比较常用的。至少在我使用期间没遇到过不稳定的情况,而且还推出了内网映射,免费1GB流量,Git用户应该足够了。
公云(pubyun)是一家名气不算大的动态域名服务商,他不像花生壳那样“用力过猛”。缺点也显而易见,太佛系了,客户端还是Windows 2000时期的风格,在Windows 7等“新版”操作系统中会有兼容性问题。
几年前,花生壳突然要求提交手持身份证照片才可正常使用。去你的吧,老子不用了!然后就开始用公云。除了客户端外,别的都挺稳定。
可是在用公云时,心里总是毛毛的。之所以用动态域名就是因为不在电脑旁边。如果客户端挂了,期间光猫换IP了,那不就瞎了……
而且国内的这些动态域名客户端均不支持IPv6,这怎么能忍?
我就想起了,可以自己动手建立DDNS域名。大多数大牌DNS服务商都提供api支持供自动修改域名。比如阿里云解析,DNSPod,以及今天的主角,cloudflare。
阿里云免费版的缓存时间最短不得少于600秒,个人用似乎凑合了,如果解析发生变动,最慢20分钟就能同步了;DNSPod通过api修改解析缓存时间最短支持15秒,但是有个缺点,那就是解析不稳定,你用nslookup查询解析,需要好几个15秒才能有一次能返回地址,其他时候都是解析超时。
所以,我把目光落在了cloudflare身上。
使用cloudflare做动态域名解析只需要以下三个命令:
1 |
curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=ihongchao.com" -H "X-Auth-Email: human@ihongchao.com" -H "X-Auth-Key: ***刮开即可查看🤭***" -H "Content-Type: application/json" |
上面这个命令的意思是,向api服务器查询我在cloudflare托管的域名的基本信息,比如注册商,过期时间,以及指定的域名解析服务器等。然后我们通过header告诉服务器我的登陆邮箱以及密钥来证实身份。服务器验证无误后,会将以上信息返回给你。其中我们需要的就是返回的字符中最开始的ID
1 |
curl -s -X GET "https://api.cloudflare.com/client/v4/zones/***第一步获取的主域名(zone)ID🤭***/dns_records?type=AAAA&name=ddns.ihongchao.com" -H "X-Auth-Email:human@ihongchao.com" -H "X-Auth-Key:***刮开即可查看🤭***" -H "Content-Type: application/json" |
上边这一步的意思是,向api服务器查询实际承担动态地址功能的域名的ID。这个域名需要事先在cloudflare后台中进行设置解析,不然是无法获取到ID的。
另外,“type”这里的解析类型一定要大写,比如“A”、“AAAA”等,小写是不会返回信息的。同一个域名的不通解析类型也会有不同的ID,比如ddns.ihongchao.com的A解析与AAAA解析就会有不同的ID
好了,需要准备的已经齐全了,下面是对DNS进行修改的命令了。
1 |
curl -k -X PUT "https://api.cloudflare.com/client/v4/zones/***主域名(zone)ID***/dns_records/***动态域名ID***" -H "X-Auth-Email:human@ihongchao.com" -H "X-Auth-Key:***刮开即可查看🤭***" -H "Content-Type: application/json" --data '{"type":"AAAA","name":"ddns.ihongchao.com","content":"face::face","ttl":1,"proxied":false}' |
这条修改DNS的命令中,唯一需要修改的就是那个IP地址“face::face”。需要注意前后对应,域名、ID、解析类型等有一个出错就会造成更新失败。
最后说缺点。
cloudflare的域名解析服务器在国内没有节点,所以域名解析起来会稍微有些慢,难以像阿里云解析那样快速。但是和DNSPod比起来还是相当快的快的,而且还稳定。