曲线救国:用 DDNS API 解决 @记录与 MX 冲突问题

2016-08-02 20:13:07 +08:00
 Lentin
域名在 namecheap 注册的,由于官方的 DNS 服务器不支持 ANAME 记录,然后自带一个 EMAIL 转发,我又绑定的 LOFTER 的博客,而 LOFTER 只有 CNAME 记录,并且有时候 IP 地址会换,刚好 NC 支持 DDNS ,所以我就利用这个 API 创建一个定时任务每五分钟获取域名的 A 记录并提交来解决这个问题。

CRONTAB 配置如下:

*/5 * * * * ip4=`wget -qO- http://119.29.29.29/d?dn=mydomain.lofter.com.`;[ -d $ip4 ] && echo wget -qO- "https://dynamicdns.park-your-domain.com/update?ip=${ip4##*;}host=@&domain=netx.space&password=7cf …… e7e"

自行修改你的 domain 和 api 密钥,然后添加到 hosts 里面就可以了,其他 DNS 服务商的参考以上内容自行修改。

另外在 openwrt 的 wget 获取 https 的时候遇到了个坑,不能获取数据,装上这个包就可以修复了:

opkg install ca-certificates

然后就大功告成了。
注释:[ -d $ip4 ] 这个判断主要是怕万一出点什么问题获取到空数据的话就不执行后面的命令了,保险起见。

我的博客 http://netx.space
4074 次点击
所在节点    DNS
16 条回复
Lentin
2016-08-02 20:26:40 +08:00
多了个 echo ……
*/5 * * * * ip4=`wget -qO- http://119.29.29.29/d?dn=mydomain.lofter.com.`;[ -d $ip4 ] && wget -qO- "https://dynamicdns.park-your-domain.com/update?ip=${ip4##*;}host=@&domain=netx.space&password=7cf …… e7e"
Lentin
2016-08-02 20:41:12 +08:00
PHP 代码:

<?php

file_get_contents('https://dynamicdns.park-your-domain.com/update?host=@&domain=netx.space&password=7cf …… e7e&ip='.gethostbyname("mydomain.lofter.com"));

然后把这个页面挂到监控宝之类的应该也可以。
johnjiang85
2016-08-02 21:12:13 +08:00
算是一个思路,不过实际情况可能更复杂, CNAME 很多时候还是用在 CDN 上的,线路太多了。
roadna
2016-08-02 21:14:24 +08:00
CNAME Flattening
renzhn
2016-08-02 21:16:15 +08:00
不用那么麻烦, cloudflare 的 CNAME Flattening 或者 dnsimple 的 apex 记录都能解决
Lentin
2016-08-02 21:17:48 +08:00
@johnjiang85
lofter 的域名服务看了一下,就是 aws 服务器,位置都是一样的,但是 ip 会变动。
@roadna
@renzhn
因为想留着他自带的 email 转发
anjunecha
2016-08-02 21:43:44 +08:00
以前做过一些测试,对于一般用户,如果 CNAME 要配合 CDN 使用,并且要保留 MX ,使用下来,单纯从解析上来讲,还是 route53 alias 搭配 cloudfront 最稳定快速,当然这其实也不算了 CNAME 了,这是 A 记录。如果有钱,对于大客户来说, CDN 服务商也可以给你在边缘做独立 IP 。
Ellison
2016-08-02 22:43:12 +08:00
我记得 lofter 是可以用 A 记录的吧...
Lentin
2016-08-02 22:59:01 +08:00
@Ellison 没找到,之前 nslookup 过几个 ip 设置上了,今天上午打不开了,才想的这么个办法.
neilp
2016-08-02 23:45:20 +08:00
我来歪个楼, namecheap 的 api 是有限制条件的。 不是每个人都能调用。
lslqtz
2016-08-02 23:47:26 +08:00
CNAME 要配合 CDN 的话还是没啥好的解决方案,用二级做邮箱是个不错的思路。
Showfom
2016-08-02 23:51:53 +08:00
要是 CDN 的话就不行了,只适合 cname 的域名是解析在静态 IP 的时候
Ellison
2016-08-03 08:49:07 +08:00
@Lentin 现在貌似找不到了,以前我弄的时候,在绑定的界面直接有写,用不了 CNAME 就可以用 A,IP 也是直接有的
Lentin
2016-08-04 09:41:04 +08:00
@Ellison
貌似是这个 ip ,刚刚弄到 hosts 里面还能用>.>
54.248.125.234
Lentin
2016-08-04 09:42:55 +08:00
@Ellison oh 刚开了全局代理……事实是不能用……
Ellison
2016-08-04 09:48:42 +08:00
@Lentin 噗,我昨天去看貌似现在是不能用了,反正我也转 GitPage 了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296655

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX