DIY

koolshare 改版梅林固件软件中心有两大 DDNS 插件使用比较普遍,一个是腾讯的 DDnspod,一个是阿里的 Aliddns(其实狗爹的 DDNS 也还可以)。我开始用 Aliddns 一直显示更新成功,但实际上域名解析地址并不变,后来改成 DDnspod,自动更新就完美了。
但最近几天发现 DDnspod 无法及时更新 IP,运行状态那里一直是空白。我还以为路由器固件出了问题,然后格式化 JFFS,恢复出厂设置,甚至降级路由器固件版本,搞了一圈还是不行。我后来又换成 Aliddns,依然是不行,非常恼火。
搜了下,原来是腾讯的 DNSPOD API 更新了,不再支持 TLS v1.2 之前的协议,而目前最新的梅林固件 7.9.1 版本的 wget 是 1.16 版本,不支持新协议,从而导致无法更新域名解释。
关于ddnspod失效的解决办法(包括官改固件)
而 Aliddns 无法更新则是因为软件中心提供的版本不对:修了下aliddns,有兴趣的试试看,应该可以用了,这个是 2018年10月更新的。

DDnspod 解决办法

  1. 找一个 U盘,格式化成 ext4 格式插进路由器(Windows 下可用 DiskGenius 格式化),这个 U盘不是临时,而是要一直插在路由器上
  2. 记得先关闭 DDnspod,通过 SSH 连接进路由器输入命令:

    cd /jffs
    entware-setup.sh

    显示如下:

    admin@R7000-0807:/tmp/home/root# cd /jffs
    admin@R7000-0807:/jffs# entware-setup.sh
     Info:  This script will guide you through the Entware installation.
     Info:  Script modifies "entware" folder only on the chosen drive,
     Info:  no other data will be changed. Existing installation will be
     Info:  replaced with this one. Also some start scripts will be installed,
     Info:  the old ones will be saved on Entware partition with name
     Info:  like /tmp/mnt/sda1/jffs_scripts_backup.tgz
    
     Info:  Looking for available partitions...
    [1] --> /tmp/mnt/sda
     =>  Please enter partition number or 0 to exit
    [0-1]: 1
     Info:  /tmp/mnt/sda selected.

    选择 1 回车开始安装
    等一袋烟的功夫,下载安装完成后,再输入以下命令,等待安装完成:

    opkg install wget
    opkg install curl

    3. 编辑 DDnspod 插件:
    可直接通过 SSH vi 命令修改,也可通过 winscp 软件打开 .sh 文件直接编辑:

    vi /jffs/.koolshare/ddnspod/ddnspod.sh

    在文件中找到以下两处 wget 开头的代码,把 wget 改成 /opt/bin/wget

\# 查询域名地址
\# 参数: 待查询域名
arNslookup() {
local inter="http://119.29.29.29/d?dn="
/opt/bin/wget --quiet --output-document=- $inter$1
}

\# 读取接口数据
\# 参数: 接口类型 待提交数据
arApiPost() {
local agent="AnripDdns/5.07(mail@anrip.com)"
local inter="https://dnsapi.cn/${1:?'Info.Version'}"
\if [ "x${arToken}" = "x" ]; then # undefine token
local param="login_email=${arMail}&login_password=${arPass}&format=json&${2}"
else
local param=\"login_token=${arToken}&format=json&${2}"\
fi
/opt/bin/wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data > \$param $inter
}

4. 进入软件中心打开 DDnspod 设置,提交后重启路由。

Alidns 插件解决办法

  1. 下载压缩包,通过离线安装,也可以通过 SSH 和 SCP 安装(具体方法可参考这里)。
    百度云链接 提取码: 6rtk
  2. 安装完成后不要点更新,设置 aliyun 的 app key 和 secret。获取 IP 命令修改如下:

    curl -s whatismyip.akamai.com

    上面是我成功的设置,之前我用 ifconfig 获取设置尝试过下面的几种都不成功:

    curl -s --interface ppp0 whatismyip.akamai.com
    curl -s --interface vlan whatismyip.akamai.com
    curl -s --interface vlan1 whatismyip.akamai.com
Pay by WeChat

Pay by WeChat

Comment

  1. 事了拂衣去 事了拂衣去
    Chrome 79

    ddnspod不用这么麻烦,系统默认的curl就是好使的,注释掉原来的wget改用curl。

    wget --quiet --no-check-certificate --output-document=- --user-agent=$agent --post-data $param $inter

    curl -s --user-agent $agent -d $param $inter

    1. harry harry
      Chrome 79

      多谢!

  2. JIM JIM
    Chrome 69

    我想问问阿里云,你提供的安装包和软件中心的有没分别?
    阿里无法更新是因为插件版本还是因为命令?
    那插件不能去点更新吗?

    1. harry harry
      Chrome 75

      koolshare市场里的的阿里插件是不一样的,我提供下载的插件是某个网友修改我测试ok的,安装后会提示有更新,请千万别点更新

      1. JIM JIM
        Chrome 69

        我更新了,发现没什么问题,
        估计那个获取IP命令有关,curl -s whatismyip.akamai.com
        emmm,可以正常IP了,问题解决了,感谢您的帮助哦。

        1. harry harry
          Chrome 75

          没问题就好。
          我的是更新的那个一直有问题

  3. zhensjoke zhensjoke
    Firefox 66

    我也是为了远程管理,怕一个3322和oray的免费版不稳定。。

    于是折腾了这个ddnspod,但是发现修改curl和这个均不生效。。现在也是醉了。。

  4. Sam.Z Sam.Z
    Chrome 72

    妳家是用什麼路由器刷的梅林固件,相比下openWrt如何,我是極路由s1,好多年了,也想折騰下。

    1. harry harry
      Chrome 73

      我用的网件的R7000,梅林固件好像能刷的都是华硕的同型号CPU。我觉得openwrt也挺好的,刚刚买的蜗牛矿渣板我已经刷了用了几周了。之前斐讯k2我刷的Padavan固件也很稳定,有极s1的

        1. Hider Hider
          Chrome 94

          aliddns 的下载链接失效了,可否辛苦再上传一遍,谢谢

          1. Harry Harry
            Chrome 94

            非常抱歉,因为很久没用这个ddns了,所以电脑里没留存,而百度云直接把我的文件删了。。
            后面我分享的文件全在自建的网盘里,再不会丢了

This is just a placeholder img.