写了个脚本在 openwrt 上使用 DNSPod 的动态域名 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
mind3x
V2EX    OpenWrt

写了个脚本在 openwrt 上使用 DNSPod 的动态域名

  •  
  •   mind3x 2015-07-28 11:27:24 +08:00 1154 次点击
    这是一个创建于 3729 天前的主题,其中的信息可能已经有所发展或是发生改变。
    OpenWRT的ddns更新都是通过发HTTP GET请求,在URL里嵌入账号和域名信息,例如 http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]

    而DNSPod的API基于HTTP POST,不能直接在openwrt上配置。虽然已经有很多现成的第三方实现,可以定时检查IP并调用DNSPod API来更新域名记录,但我还是希望能利用OpenWRT内建的ddns支持,这样WAN重连时域名能立刻更新。

    所以写了个简单的脚本

    使用步骤:

    1. 确认已经在DNSPod上你的域名下面建好了要用作动态域名的子域名
    2. 路由上用opkg安装python和python-openssl
    3. 将上面的脚本保存到路由上,确认 chmod +x
    4. 编辑脚本,提供你自己的DNSPod账号及域名信息 (注意 SUB_DOMAIN 只写二级域名,不包含主域名)
    5. 在路由上试运行dnspod-ddns.py,如果账号和域名信息正确,假设你的DOMAIN是suchwow.com,SUB_DOMAIN是doge,应该有如下输出:

    DNSPod account: your@email
    Domain: "http://suchwow.com" id 104xyzabc
    Sub domain: "doge.suchwow.com" id 11xyzabcde

    Sat Jul 25 12:28:51 2015 Server Starts - 0.0.0.0:2080

    6. 用浏览器或curl访问 http://你的路由IP:2080,应该有类似如下输出:
    {"status":{"code":"1","message":"Action completed successful","created_at":"2015-07-25 12:34:44"},"record":{"id": 11xyzabcde,"name":"doge","value":"your.public.ip.addr"}}
    这表示动态域名已经成功更新。
    7. 在路由上^C中止脚本,改用 dnspod-ddns.py & 放到后台运行
    8. 修改/etc/rc.local (也可以在LuCI里改),在exit 0前加入一行:
    /path/to/dnspod-ddns.py &

    9. 在LuCI里配置Dynamic DNS,Service选--Custom--,Update URL写http://localhost:2080,Save & Apply即可。
    3 条回复    2015-07-28 15:29:33 +08:00
    LazyZhu
        1
    LazyZhu  
       2015-07-28 12:02:38 +08:00 via Android
    有shell版,lua版
    bianzhifu
        2
    bianzhifu  
       2015-07-28 14:44:43 +08:00
    @mind3x 给你一个成熟的lua版本 不需要安装python wan重连可以更新
    https://github.com/rssnsj/network-feeds/tree/master/dnspod-utils
    mind3x
        3
    mind3x  
    OP
       2015-07-28 15:29:33 +08:00
    @bianzhifu 现有的实现我基本上找过一圈,自己写的原因是想利用已有的openwrt ddns,在LuCI里直接配置,而不是自己去做hotplug
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2719 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 12:02 PVG 20:02 LAX 05:02 JFK 08:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86