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 连接进路由器输入命令:
    1
    2
    cd /jffs
    entware-setup.sh
    显示如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    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 回车开始安装
    等一袋烟的功夫,下载安装完成后,再输入以下命令,等待安装完成:
    1
    2
    opkg install wget
    opkg install curl
    3. 编辑 DDnspod 插件:
    可直接通过 SSH vi 命令修改,也可通过 winscp 软件打开 .sh 文件直接编辑:
    1
    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([email protected])”
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 命令修改如下:
    1
    curl -s whatismyip.akamai.com
    上面是我成功的设置,之前我用 ifconfig 获取设置尝试过下面的几种都不成功:
    1
    2
    3
    curl -s --interface ppp0 whatismyip.akamai.com
    curl -s --interface vlan whatismyip.akamai.com
    curl -s --interface vlan1 whatismyip.akamai.com