在 Synology DSM 配置 Cloudflare DDNS

内容纲要

查看【Synology 与 XPEnology】专题可浏览更多内容

启用 DiskStation SSH 功能

登陆 Synology DiskStation,打开「控制面板」,选择「终端机和 SNMP」,勾上「启动 SSH 功能」:

在 Synology DSM 配置 Cloudflare DDNS

然后使用 SSH 登录到你的 DiskStation。

如果你不知道 SSH 是什么也没关系,下载个 SSH 客户端就行了,比如 Xshell 或者 FinalShell,找个免费能用的就可以。

初次使用 SSH 客户端时会询问配置 SSH 服务器的信息,一般只关注三点:名称、主机和端口。名称随意,主机填写你的 DiskStation 的 IP 地址,端口使用默认的 22。

然后就可以连接了,如果连接成功就会询问你登陆账号和密码,这个账号密码就是 DiskStation Manager 的账号密码,确认无误就会登陆成功。

获取支持脚本

这里使用的是开源项目:SynologyCloudflareDDNS

在 SSH 客户端内输入命令:

sudo wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh

文件下载成功后赋予权限:

sudo chmod +x /sbin/cloudflareddns.sh

修改配置文件

然后是修改配置文件:

cat >> /etc.defaults/ddns_provider.conf << 'EOF'
[Cloudflare]
        modulepath=/sbin/cloudflareddns.sh
        queryurl=https://www.cloudflare.com
        website=https://www.cloudflare.com
E*.

如果你和我一样有强迫症可以使用命令手动编辑文件:

sudo vim /etc.defaults/ddns_provider.conf

将下面文本字段放入到 [CloudNS] 之前,这样之后列表中的 Cloudflare 选项就会按顺序在 CloudNS 之前,如果你并不熟悉 VIM 编辑操作还是使用上一条 cat 命令吧:

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

好吧,我猜你可能还是想尝试一下:在使用 vim 命令后你就会进入到编辑器中,使用方向键把光标往下移动,直到 [CloudNS] 这行的开头,按 I 键进入编辑模式然后按回车空出一行来,接着将光标上移到空的那行。

然后复制上面那 4 行文本,在 SSH 客户端中右键粘贴,这时候在文本中应该是这样的:

...
[Variomedia]
        modulepath=/usr/syno/bin/ddns/variomedia.php
        queryurl=https://dyndns.variomedia.de
[Cloudflare]
        modulepath=/sbin/cloudflareddns.sh
        queryurl=https://www.cloudflare.com
        website=https://www.cloudflare.com
[CloudNS]
        modulepath=/usr/syno/bin/ddns/cloudns.php
        queryurl=https://www.cloudns.net/
[Google]
...

如果此时你的界面和上面一样(内容过多前后太长的部分我用省略号省去),这就说明你成功了并且没有搞砸什么,这时候按 Esc 键,输入::wq (注意是英文冒号加上 wq) 就会保存退出了。如果搞砸了输入 :q! 强制退出不保存就可以了,也别太担心。

⚠️ 注意:如果你并不熟悉 VIM 编辑操作,保险起见还是使用前面 cat 命令吧,别为难自己。

到这里就可以关闭 SSH 客户端了,现在去 Cloudflare 网站上操作。

配置 Cloudflare 令牌

登陆 Cloudflare 面板,找到你要关联的域名并点击,在「概述」选项里的右侧会有一个「API」,记录下「API」下面的「区域 ID」:

在 Synology DSM 配置 Cloudflare DDNS

然后点击「获取您的 API 令牌」。

在 Synology DSM 配置 Cloudflare DDNS

点击「创建令牌」。

在 Synology DSM 配置 Cloudflare DDNS

使用「编辑区域 DNS」的模板。

在 Synology DSM 配置 Cloudflare DDNS

主要注意:

  1. 「权限」的第三个选项选择「编辑」;
  2. 「区域资源」选择「所有区域」,或「特定区域」选择你要关联的域名(如果你只想特定域名可以 DDNS);

然后点击「继续以显示摘要」继续。

在 Synology DSM 配置 Cloudflare DDNS

点击「创建令牌」。

在 Synology DSM 配置 Cloudflare DDNS

这个令牌只会显示这一次所以要保存好,否则就只能再创建一个了。

配置 DiskStation DDNS 功能

回到 DiskStation,在「控制面板」内找到「外部访问」:

在 Synology DSM 配置 Cloudflare DDNS

点击「新增」。

在 Synology DSM 配置 Cloudflare DDNS

  • 服务供应商:选择「Cloudflare」;
  • 主机名称:也就是域名,自定义一个;
  • 用户名/电子邮件:填写刚才「概述」下「区域 ID」;
  • 密码/密钥:填写刚才创建的令牌;

在 Synology DSM 配置 Cloudflare DDNS

成功。

关闭自动开启「CDN」

脚本中默认会将「代理状态」设置为「已代理」,但你可能并不想这样做,所以可以使用命令修改脚本中的第 6 行:

sudo sed -i 's/proxy="true"/proxy="false"/' /sbin/cloudflareddns.sh

这样就不会自动开启代理状态。

最后

噢,对了,如果后续都不再需要,记得回到「终端机和 SNMP」取消「启动 SSH 功能」的勾选。