群晖如何添加原生CloudFlare的DDNS功能

群晖NAS添加原生CloudFlare DDNS功能的详细指南

)系统原生DDNS功能不支持CloudFlare,但可以通过一个开源脚本轻松添加CloudFlare作为DDNS提供商,从而实现(DDNS),让你的NAS在公网IP变化时自动更新域名记录。这适用于DSM 7.x及以上版本,操作简单,但需要权限。整个过程无需第三方插件,完成后可在DSM的DDNS界面直接配置。以下是基于可靠教程的完整步骤。

前提准备

  1. CloudFlare账户和域名:确保你有一个已添加到CloudFlare的域名,并使用CloudFlare的NS服务器。
  2. 获取:登录CloudFlare仪表盘,进入域名概览页面,复制“Zone ID”(也称Zoom ID,通常是32位十六进制字符串,如023e105f4ecef8ad9ca31a8372d0c353)。
  3. 创建
    • 访问 CloudFlare API Tokens页面
    • 点击“创建令牌”,选择“Edit zone DNS”模板。
    • 权限设置为默认(Zone: DNS > Edit),区域选择“Include > Specific zone”(指定你的域名)。
    • 生成后复制Token(注意:Token可在“Deployments”部分找回,但不在“API Keys”中)。
  4. 启用群晖SSH
    • 在DSM控制面板 > 终端机和SNMP > 勾选“启用SSH服务”(端口默认22)。
    • 准备SSH工具,如PuTTY、Xshell或Windows的OpenSSH。
  5. 注意事项:备份NAS配置;API Token需保密;推荐为DDNS创建子域名,并在CloudFlare DNS中添加A记录(,即橙色云图标为灰色),初始IP可任意填写。

步骤1: 通过SSH安装脚本

  1. 使用SSH工具连接NAS:
    • 主机:NAS的IP地址,端口:22。
    • 用户名:你的DSM管理员账户,密码:DSM登录密码。
    • 登录后提示符如admin@NASName:~$。
  2. 切换到root用户:
    • 输入sudo -i(或su root),再输入管理员密码(输入时不显示字符)。
    • 成功后提示符变为root@NASName:~#。
  3. 下载并安装脚本:
    • 运行以下命令下载脚本(这是一个开源的安装脚本):
      curl -L https://raw.githubusercontent.com/timothymiller/synology-cloudflare-ddns/master/cloudflare.sh -o /sbin/cloudflare
    • 如果下载失败或HTTP错误,尝试修改脚本(用vi /sbin/cloudflare编辑第6行,将proxy="true"改为proxy="false")。
    • 赋予执行权限:
      chmod +x /sbin/cloudflare
    • 运行脚本添加CloudFlare到DDNS列表:
      /sbin/cloudflare

      脚本会自动检测并添加CloudFlare作为提供商,重启DDNS服务(可能需几分钟生效)。

  4. 退出root和SSH:
    • 输入exit退出root,再exit退出SSH。

警告:脚本运行时会修改系统文件(如/etc.defaults/ddns_provider.conf),若DSM升级可能覆盖;建议在升级前备份/etc/ddns_provider.conf。如果脚本报错,检查网络或手动下载脚本内容粘贴。

步骤2: 在DSM中配置DDNS

  1. 打开DSM控制面板 > > DDNS。
  2. 点击“添加”按钮。
  3. 填写配置:
    • 服务提供商:选择“CloudFlare”(脚本添加后会出现)。
    • 主机名:输入你的子域名(如nas.example.com),确保在CloudFlare DNS中已添加对应A记录(代理关闭)。
    • 用户名/电子邮件:粘贴Zone ID。
    • 密码/密钥:粘贴API Token。
    • 外部地址:选择“使用当前IP地址”或自动。
  4. 点击“测试连接”验证(应显示“连接成功”)。
  5. 点击“应用”保存并启用。

步骤3: 验证和测试

  1. 在CloudFlare DNS页面检查子域名的A记录IP是否更新为你的公网IP(用curl ifconfig.me查当前IP)。
  2. 外部访问测试:用浏览器访问http://nas.example.com:5000(DSM默认端口),应看到DSM登录页。
  3. IP变化测试:模拟IP变(或等运营商重启),几分钟后检查记录是否更新。

常见问题与注意

  • 脚本失效:若DSM版本更新导致脚本失效,重新运行安装命令,或参考GitHub仓库 timothymiller/synology-cloudflare-ddns 更新。
  • 代理问题:CloudFlare代理(橙云)会隐藏真实IP,不适合DDNS;必须关闭。
  • 安全性:API Token仅限DNS编辑权限;若多域名,创建专用Token。
  • 替代方法:若不想用脚本,可用Docker运行CloudFlare DDNS容器,或第三方如DNS-O-Matic中转,但原生脚本最简洁。

通过以上步骤,你就能在群晖上实现原生CloudFlare DDNS,享受免费、可靠的动态解析。如果遇到具体错误,建议检查DSM日志(控制面板 > 日志中心)。

使用场景

有外网, 有域名, 域名托管在cloudflare, 需要DDNS解析, 又不太想用ddns-go

使用步骤

配置群晖

  1. SSH连接到群晖, 切换到root用户, 然后执行
wget https://mirror.czl.net/https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh
  1. 给脚本权限
chmod +x /sbin/cloudflareddns.sh
  1. 将cloudflare的ddns脚本加到群晖系统先粘贴
    cat >> /etc.defaults/ddns_provider.conf << EOF
    

    然后粘贴

    [Cloudflare]
    modulepath=/sbin/cloudflareddns.sh
    queryurl=https://www.cloudflare.com
    website=https://www.cloudflare.com
    

    最后粘贴

    EOF
    

    就保存好了

获取 Cloudflare 参数

  1. 获取区域 ID。
  2. 获取可修改的API KEY

设置 DDNS

  • 主机名是要设置的二级域名
  • 用户名/电子邮件部分填区域ID
  • 密码/密钥填API KEY

保存启用即可.

 

 

评分

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注