RunDDNS 使用文档

支持多种平台的动态域名更新方案

Windows 系统使用指南
方式一:使用 PowerShell(推荐)

PowerShell 是 Windows 10/11 自带的强大命令行工具。

# 更新所有域名IP
$cred = ConvertTo-SecureString "您的密码" -AsPlainText -Force
$pair = "您的用户名:$cred"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$headers = @{Authorization="Basic $base64"}
Invoke-RestMethod -Uri "https://ddns.yinze.run/nic/update?hostname=您的完整域名" -Method Get -Headers $headers

# 或者一行命令
curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
方式二:使用 Windows CMD
curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
方式三:使用 Windows 任务计划程序定时更新
  1. 打开「任务计划程序」,点击「创建基本任务」
  2. 设置任务名称和触发时间(如每小时)
  3. 操作选择「启动程序」,程序填写:cmd.exe
  4. 参数填写:/c curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
下载 Windows 客户端
下载 Windows 客户端
Linux 系统使用指南
方式一:使用 curl 命令
# 安装 cron
sudo apt install cron  # Debian/Ubuntu
sudo yum install crontabs  # CentOS/RHEL

# 添加定时任务,每5分钟更新一次
echo "*/5 * * * * curl -u '用户名:密码' 'https://ddns.yinze.run/nic/update?hostname=您的完整域名' >> /var/log/ddns.log 2>&1" | sudo tee -a /var/spool/cron/crontabs/root

# 启动 cron 服务
sudo service cron start
方式二:使用 systemd 服务(更可靠)
# 创建 systemd 服务文件
sudo nano /etc/systemd/system/ddns.service

# 文件内容:
[Unit]
Description=RunDDNS Service
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/curl -u '用户名:密码' 'https://ddns.yinze.run/nic/update?hostname=您的完整域名'
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 创建定时器
sudo nano /etc/systemd/system/ddns.timer

# 文件内容:
[Unit]
Description=RunDDNS Timer
Requires=ddns.service

[Timer]
OnBootSec=1min
OnUnitActiveSec=5min
Unit=ddns.service

[Install]
WantedBy=timers.target

# 启用定时器
sudo systemctl daemon-reload
sudo systemctl enable --now ddns.timer
方式三:使用 shell 脚本
#!/bin/bash
# 保存为 ddns.sh 并添加执行权限: chmod +x ddns.sh

USERNAME="您的用户名"
PASSWORD="您的密码"
DOMAIN="您的完整域名"
UPDATE_URL="https://ddns.yinze.run/nic/update"

curl -u "$USERNAME:$PASSWORD" "$UPDATE_URL?hostname=$DOMAIN"
macOS 系统使用指南
使用 launchd 定时任务(macOS 推荐方式)
# 创建 plist 文件
mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.runddns.updater.plist

# 文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.runddns.updater</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/curl</string>
        <string>-u</string>
        <string>用户名:密码</string>
        <string>https://ddns.yinze.run/nic/update?hostname=您的完整域名</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

# 加载任务
launchctl load ~/Library/LaunchAgents/com.runddns.updater.plist
使用 crontab
# 编辑 crontab
crontab -e

# 添加行(每5分钟更新):
*/5 * * * * /usr/bin/curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
使用 Homebrew 安装定时任务
brew install curl
# 然后使用上述 crontab 方式
OpenWRT 路由器使用指南
方式一:使用 uqmi + cron(适合梅林等固件)
# SSH 登录路由器后执行

# 创建更新脚本
cat > /root/ddns_update.sh << 'EOF'
#!/bin/sh
curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
EOF

chmod +x /root/ddns_update.sh

# 添加到 crontab
echo "*/5 * * * * /root/ddns_update.sh" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start
方式二:使用 OpenWRT 自带 DDNS 插件
  1. 在 LuCI 界面进入「服务」→「DDNS」
  2. 启用 DDNS,点击「添加」
  3. 配置:
    • 接口:WAN
    • DDNS 服务提供商:自定义
    • 更新 URL:https://ddns.yinze.run/nic/update?hostname=<domain>&myip=<ipaddr>
    • 用户名/密码:您的账户信息
  4. 保存并应用
方式三:使用 Shell 脚本结合wan up事件
# 创建事件触发脚本
cat > /etc/hotplug.d iface/95-ddns << 'EOF'
[ "$ACTION" = ifup" ] && [ "$INTERFACE" = wan" ] && {
    sleep 5
    /root/ddns_update.sh
}
EOF
群晖 NAS 使用指南
方式一:使用群晖任务计划(推荐)
  1. 打开「控制面板」→「任务计划」
  2. 点击「用户定义的脚本」,选择「计划的任务」→「添加用户定义的脚本」
  3. 任务名称:DDNSUpdate
  4. 用户定义脚本:
    curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
  5. 计划:选择「按分钟」,间隔5分钟
  6. 确定后右键任务选择「运行」
方式二:使用 Telnet/SSH
# 连接 SSH 后
sudo -i  # 切换到 root

# 创建脚本
cat > /tmp/ddns.sh << 'EOF'
#!/bin/sh
curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
EOF

chmod +x /tmp/ddns.sh

# 添加到 crontab
echo "*/5 * * * * /tmp/ddns.sh" >> /etc/config/crontab
crontab /etc/config/crontab

# 重启 crond
/etc/init.d/cron restart
方式三:使用群晖 Docker 容器
# 在 Container Manager 中搜索 alpine
# 创建容器,运行命令:
while true; do curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"; sleep 300; done
飞牛 NAS (fnOS) 使用指南
方式一:使用 fnOS 任务计划
  1. 在 fnOS 图形界面打开「系统设置」→「计划任务」
  2. 创建「自定义脚本」任务
  3. 配置:
    • 名称:DDNSUpdate
    • 执行用户:root
    • 计划:cron 表达式 */5 * * * *
    • 脚本:
      curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
  4. 保存并测试运行
方式二:使用 SSH 命令行
# SSH 登录后
sudo -i  # 获取 root 权限

# 创建脚本
cat > /opt/ddns.sh << 'EOF'
#!/bin/sh
curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"
logger -t DDNS "更新结果: $(curl -u '用户名:密码' 'https://ddns.yinze.run/nic/update?hostname=您的完整域名')"
EOF

chmod +x /opt/ddns.sh

# 添加到 crontab
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/ddns.sh") | crontab -
service crond restart
方式三:使用 Docker 容器
# 在 fnOS Docker 中部署
docker run -d --name ddns-updater \
  --restart=always \
  alpine sh -c 'apk add --no-cache curl && while true; do curl -u "用户名:密码" "https://ddns.yinze.run/nic/update?hostname=您的完整域名"; sleep 300; done'
ddns-go 使用指南

ddns-go 是一个通用的 DDNS 客户端,支持自定义 DDNS 服务商,完全可以配合 RunDDNS 使用。

配置步骤
  1. 下载 ddns-go:GitHub 下载页
  2. 运行 ddns-go,访问 http://localhost:9876
  3. 点击「新增」添加配置
  4. 在「DNS服务商」选择「自定义」
  5. 配置说明:
    • IPv4/IPv6更新地址https://ddns.yinze.run/nic/update?hostname=[DOMAIN]&myip=[IP]
    • 获取IP方式:选择「从网络获取」或「从网卡获取」
    • 是否通过代理更新:否
  6. 在下方「 Domains」填入您的完整域名(如 yourname.1798.cloud
  7. 勾选「启用」并保存
注意:ddns-go 的「自定义」模式支持 HTTP Basic Auth,请在运行 ddns-go 的机器上设置环境变量 DDNSGoUser 格式为 用户名:密码,或者在 ddns-go 界面填写正确的认证信息。
配置文件方式(高级用户)

ddns-go 配置文件位于 ~/.ddns-go/config.yaml,可以手动编辑:

custom:
  - name: RunDDNS
    id: RunDDNS
    domain: "yourname.1798.cloud"
    ipv4: true
    ipv6: false
    netinterface: ""
    updateUrl: "https://ddns.yinze.run/nic/update?hostname=[DOMAIN]&myip=[IP]"
    requestMethod: "GET"
    customData:
      user: "您的用户名"
      password: "您的密码"
API 接口说明
更新 URL 格式
https://ddns.yinze.run/nic/update?hostname=您的完整域名&myip=可选IP
认证方式

使用 HTTP Basic Auth,用户名为注册手机号,密码为账户密码

响应说明
响应 说明
good 更新成功
nochg IP 未变化,无需更新
abuse 请求过于频繁,被限制
notfqdn 域名格式错误
nohost 域名不存在