给群晖添加原生CloudFlare的DDNS功能

Synology Cloudflare DDNS 脚本 :scroll:

这是一个用于将 Cloudflare 添加为 Synology NAS 的 DDNS 的脚本。该脚本使用了更新的 API,Cloudflare API v4。

如何使用

通过 SSH 访问 Synology

  1. 登录到您的 DSM
  2. 转到控制面板 > 终端和 SNMP > 启用 SSH 服务
  3. 使用您的客户端通过 SSH 访问 Synology。
  4. 使用您的 Synology 管理员账户进行连接。

在 Synology 中运行命令

  1. 从该仓库下载 cloudflareddns.sh/sbin/cloudflareddns.sh
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. cloudflareddns.sh 添加到 Synology
cat >> /etc.defaults/ddns_provider.conf << 'EOF'
[Cloudflare]
modulepath=/sbin/cloudflareddns.sh
queryurl=https://www.cloudflare.com
网站=https://www.cloudflare.com
E*.

queryurl 并不重要,因为我们将使用我们的脚本,但这是必要的。

获取 Cloudflare 参数

  1. 转到您的域概述页面并复制您的区域 ID。
  2. 前往您的个人资料 > API 令牌 > 创建令牌。它应具有 区域 > DNS > 编辑 的权限。复制 API 令牌。

设置 DDNS

  1. 登录到您的 DSM
  2. 访问控制面板 > 外部访问 > DDNS > 添加
  3. 输入以下内容:
  • 服务提供商: Cloudflare
  • 主机名: www.example.com
  • 用户名/邮箱: <区域 ID>
  • 密码密钥: <API 令牌>

群晖 Synology 的NAS,控制面板,外部访问中的DDNS里面,没有CloudFlare,所以这里简单整理一个添加支持CloudFlare DDNS的功能。

需要准备的工具和内容

需要一个域名,并有一个CloudFlare账号,以及这个域名使用CloudFlare的 NameServer 域名NS服务器

需要知道这个域名的概述中,找到 区域ID (Zoom ID)

需要创建一个给这个域名可编辑DNS权限的API 的 token

需要给NAS开启SSH功能,并准备一个ssh工具,Putty或者Xshell之类的都可以。

教程部分

在已经使用CloudFlare的NS服务的域名,概述这里,找到区域ID 英文应该是(Zoom ID)

还有就是,推荐使用二级域名,点上图 DNS 这里,添加个二级域名,指向IP随便写一个,关掉代理的那个云

给这个域名创建个可以编辑DNS的API token

点这里:https://dash.cloudflare.com/profile/api-tokens

点创建令牌,选择API 令牌模板中的 编辑区域 DNS

权限基本不用管,默认应该就是区域,DNS,编辑

区域资源这里,可以选 包括,特定区域,你想用的域名

下面的不用管,默认就行,继续,继续,最后就弹出一行内容,复制这行内容,这个就是 API token,如图位置

注意,这个 API token 如果后期忘记了,点如图 投放 这里找回,不要点下面的 API密钥,如图

把上面提到的 区域ID 和 API token 保存好,后面要用。

打开群晖NAS的后台设置,控制面板 - 终端机和SNMP

开启ssh后确定

下载一个ssh工具,免费的比如 Putty,收费的比如Xshell

以xsell工具举例,打开创建一个新的会话,主机就是你的群晖NAS的ip,端口如果没修改就是22,接着点登录

用户名就是你的nas后台登陆账号,密码就是登录密码

登录之后打开显示一个这样的内容 thebs@SeriousTest:~$ 表示可以下一步了

显示这个之后,输入

这里输入你的后台登录密码,输入的时候不显示,输入完成后 Enter确定,如果密码没输入错误,前面会变成 root,大概这样

root@SeriousTest:~#

到这里表示启用root账户了,接下来的操作是下载脚本,加载脚本

复制粘贴下面的内容,这个是下载脚本并把脚本复制到/sbin/目录

上面脚本中,第六行有个 proxy=“true”,推荐用vi工具改成 ,如果你不会改,就直接用我下面修改好的

如果提示HTTP错误之类的,就用这个,这个已经改成 proxy="false"了

给脚本执行权限

给脚本添加到原生的DDNS服务

上面三个内容输入完成后和我下面的一样表示成功

打开群晖后台,控制面板,外部访问,DDNS

新增DDNS,主机名称写你的二级域名,用户名/电子邮件这里,写上图准备的区域 ID (zoom id),密码这里写 API token

点测试链接,如果正常表示成功了,最后确定就行,如图

最后,你可以打开cloudflare,看看域名的dns里面,二级域名的指向有没有修改。