# ddns 更新脚本

这个脚本适用于 openwrt 和 ddwrt 路由动态更新域名。理论上支持所有可以运行 `shell (/bin/sh)` 脚本的 `linux` 环境。

## openwrt

**1\. 下载脚本**

cloudxns:

```
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/cloudxns.sh
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/cloudxns.conf
chmod +x cloudxns.sh
```

dnspod:

```
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/dnspod.sh
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/dnspod.conf
chmod +x dnspod.sh
```

**2\. 配置**

cloudxns:

```
API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
HOST="ddns"
LAST_IP_FILE="/tmp/.LAST_IP"
```

dnspod:

```
ACCOUNT="xxxxxx@gmail.com"
PASSWORD="xxxxxxxxxx"
DOMAIN="xxxx.xxx.org"
RECORD_LINE="默认"
```

**3\. 运行测试**

dnspod: `./dnspod.sh dnspod.conf`

cloudxns: `./cloudxns.sh cloudxns.conf`

**4\. 添加到 cron 定时任务**

```
/etc/init.d/cron enable
crontab -e
```

添加如下内容,注意修改路径

cloudxns:

```
*/3 * * * * /root/ddns/cloudxns.sh /root/ddns/cloudxns.conf >> /root/ddns/cloudxns.log
```

dnspod:

```
*/3 * * * * /root/ddns/dnspod.sh /root/ddns/dnspod.conf >> /root/ddns/dnspod.log
```

## ddwrt

**1\. 下载脚本**

下载脚本及配置文件,保存文件到 `/jffs` 及 `/opt` 等不会重启丢失的目录,注意可能需要在网页管理页面先启用 `jffs`

dnspod:

```
curl -k -s https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/dnspod.sh
curl -k -s https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/dnspod.conf
chmod +x dnspod.sh
```

cloudxns:

```
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/cloudxns.sh
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/ddns/cloudxns.conf
chmod +x cloudxns.sh
```


**2\. 修改配置文件**

dnspod:

```
ACCOUNT="xxxxxx@gmail.com"
PASSWORD="xxxxxxxxxx"
DOMAIN="xxxx.xxx.org"
RECORD_LINE="默认"
```

cloudxns:

```
API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
HOST="ddns"
LAST_IP_FILE="/tmp/.LAST_IP"
```

**3\. 运行测试**

dnspod: `./dnspod.sh dnspod.conf`

cloudxns: `./cloudxns.sh cloudxns.conf`

**4\. 添加 cron 定时任务**

ddwrt 在网页管理页面添加 cron 定时任务,注意修改命令的路径:

dnspod:

```
*/3 * * * * root /jffs/ddns/dnspod.sh /jffs/ddns/dnspod.conf >> /jffs/ddns/cloudxns.log
```

cloudxns:

```
*/3 * * * * root /jffs/ddns/cloudxns.sh /jffs/ddns/cloudxns.conf >> /jffs/ddns/cloudxns.log
```

## 更多细节内容可以参考我之前写的博客

[ddwrt路由/linux动态解析ip(ddns)到dnspod配置](https://www.xdty.org/1841)

[用于ddwrt或openwrt的cloudxns动态域名更新shell脚本](https://www.xdty.org/1907)