V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lentin
V2EX  ›  DNS

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

  •  
  •   Lentin · 2016-08-02 20:13:07 +08:00 · 4060 次点击
    这是一个创建于 3041 天前的主题,其中的信息可能已经有所发展或是发生改变。
    域名在 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
    16 条回复    2016-08-04 09:48:42 +08:00
    Lentin
        1
    Lentin  
    OP
       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
        2
    Lentin  
    OP
       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
        3
    johnjiang85  
       2016-08-02 21:12:13 +08:00
    算是一个思路,不过实际情况可能更复杂, CNAME 很多时候还是用在 CDN 上的,线路太多了。
    roadna
        4
    roadna  
       2016-08-02 21:14:24 +08:00
    CNAME Flattening
    renzhn
        5
    renzhn  
       2016-08-02 21:16:15 +08:00
    不用那么麻烦, cloudflare 的 CNAME Flattening 或者 dnsimple 的 apex 记录都能解决
    Lentin
        6
    Lentin  
    OP
       2016-08-02 21:17:48 +08:00
    @johnjiang85
    lofter 的域名服务看了一下,就是 aws 服务器,位置都是一样的,但是 ip 会变动。
    @roadna
    @renzhn
    因为想留着他自带的 email 转发
    anjunecha
        7
    anjunecha  
       2016-08-02 21:43:44 +08:00
    以前做过一些测试,对于一般用户,如果 CNAME 要配合 CDN 使用,并且要保留 MX ,使用下来,单纯从解析上来讲,还是 route53 alias 搭配 cloudfront 最稳定快速,当然这其实也不算了 CNAME 了,这是 A 记录。如果有钱,对于大客户来说, CDN 服务商也可以给你在边缘做独立 IP 。
    Ellison
        8
    Ellison  
       2016-08-02 22:43:12 +08:00
    我记得 lofter 是可以用 A 记录的吧...
    Lentin
        9
    Lentin  
    OP
       2016-08-02 22:59:01 +08:00
    @Ellison 没找到,之前 nslookup 过几个 ip 设置上了,今天上午打不开了,才想的这么个办法.
    neilp
        10
    neilp  
       2016-08-02 23:45:20 +08:00 via iPhone
    我来歪个楼, namecheap 的 api 是有限制条件的。 不是每个人都能调用。
    lslqtz
        11
    lslqtz  
       2016-08-02 23:47:26 +08:00
    CNAME 要配合 CDN 的话还是没啥好的解决方案,用二级做邮箱是个不错的思路。
    Showfom
        12
    Showfom  
       2016-08-02 23:51:53 +08:00
    要是 CDN 的话就不行了,只适合 cname 的域名是解析在静态 IP 的时候
    Ellison
        13
    Ellison  
       2016-08-03 08:49:07 +08:00
    @Lentin 现在貌似找不到了,以前我弄的时候,在绑定的界面直接有写,用不了 CNAME 就可以用 A,IP 也是直接有的
    Lentin
        14
    Lentin  
    OP
       2016-08-04 09:41:04 +08:00
    @Ellison
    貌似是这个 ip ,刚刚弄到 hosts 里面还能用>.>
    54.248.125.234
    Lentin
        15
    Lentin  
    OP
       2016-08-04 09:42:55 +08:00
    @Ellison oh 刚开了全局代理……事实是不能用……
    Ellison
        16
    Ellison  
       2016-08-04 09:48:42 +08:00
    @Lentin 噗,我昨天去看貌似现在是不能用了,反正我也转 GitPage 了...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.