[教程] 群晖NAS使用自定义脚本设置Cloudflare DDNS 实现绑定自己的域名访问
想必各位使用 NAS 的用户都会考虑绑定自己的域名实现远程访问,毕竟如果不配置远程访问的话出门在外想要查看 NAS 中存放的文件那就麻烦了。
群晖 DSM 系统已经内置多种 DDNS 服务提供商可以绑定自己的域名,但群晖并没有提供 Cloudflare DDNS 服务,严格来说是没有支持 Cloudflare API 自动解析域名。
Cloudflare 并非 DDNS 提供商,但提供的 API 接口也可以实现 DDNS 服务,在 GitHub 上已经有开发者为我们编写了脚本,只需要通过命令行执行脚本即可在 DSM 中添加 Cloudflare DDNS 服务。
下面是必要条件:
- 有自己的域名
- 将域名托管在 Cloudflare
- 有动态公网 IP (路由器通常为 PPPoE 拨号上网而不是直接从光猫 DHCP)
具体操作步骤:
1. 在群晖 DSM 控制面板中找到终端机和 SNAP,在这里将 SSH 连接功能开启;
2. 使用终端软件或者 Windows 11 自带的命令提示符,输入 ssh 群晖登录名 @IP 地址,例如:
ssh duckbrother@192.168.1.2
接着输入群晖账户密码,Linux 系统输入密码是不显示任何字符的,输入完成后直接按回车即可,如果账号密码无误即可成功登录。
接着输入 sudo -i 回车,此时需要再次输入群晖账户的密码以进入 root 权限进行敏感操作,成功进入后会显示 root@群晖设备名称 :~#
3. 接下来下载脚本并赋予权限:
# 下载脚本 wget https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh # 修改权限 chmod +x /sbin/cloudflareddns.sh
4. 在群晖 DDNS 列表里新增 Cloudflare:
cat >> /etc.defaults/ddns_provider.conf << EOF [Cloudflare] modulepath=/sbin/cloudflareddns.sh queryurl=https://www.cloudflare.com website=https://www.cloudflare.com EOF
5. 以上步骤操作完成后群晖控制面板、外部访问的 DDNS 设置里就可以看到 Cloudflare 选项。
6. 进入 Cloudfalre 控制台:https://dash.cloudflare.com/ 点击左侧的管理账户、成员 API 令牌
7. 点击创建令牌,在 API 模板里选择编辑区域 DNS 模板,DNS 后的权限读取修改为编辑、特定区域后选择你需要使用的域名,确认无误后创建令牌并复制令牌。
注意:令牌仅会显示一次,请复制后妥善保管,如果忘记请重新创建新令牌,无法找回已经创建的令牌的具体内容。
8. 返回 Cloudflare Dash 主页,点击你需要使用的域名,此时右下角 API 区域有个区域 ID,复制完整的区域 ID 备用。
9. 进入群晖 DSM 控制面板、外部访问、DDNS、新增,在下拉菜单里可以看到 Cloudflare
10. 具体配置信息分别为:服务供应商 Cloudflare、主机名称填写域名、用户是区域 ID、密码是 API 令牌,填写无误后点击联机测试,如果显示正常那就保存。
11. 在外部访问、路由器配置里点击新增,然后设置端口号,端口号通常内外一致,比如群晖 DSM 默认使用的是 5000 端口,那我们外部端口也设置为 5000.
此时在新增里选择内置应用程序、管理用户接口并将其信息映射到路由器,如果不支持映射到路由器也没关系,可以手动设置。
12. 在路由器里找到端口转发或 UPnP 等相关选项,添加条目:内部端口号 5000、外部端口 5000、协议 TCP、主机 IP 选择 NAS 的 IP 地址并保存。
13. 完成端口映射后回到群晖 DSM,在路由器配置里点击测试联机,如果测试连接结果都显示 OK 那说明连接正常,此时你可以使用 http:// 你的域名.com:5000 进行访问。
14. 如果你有域名 HTTPS 证书还可以配置 HTTPS 访问,在 DSM 控制面板安全性里找到证书,选择 Synology 证书,将其替换为你自己的证书即可。
15. 替换证书后还需要设置 HTTPS 端口映射,比如 5001 到 5001,步骤和前面一样,也需要在路由器配置里额外添加个管理用户接口的端口选项,然后在路由器里端口转发 5001 到 5001,配置完成后即可使用 https:// 你的域名.com:5001 访问。