- A script for Cloudflare DDNS on Synology DSM.
- A Minimum Settings required.
- Uses Cloudflare API v4.
2022.02.14. Supports both "API Tokens" and "Global API Key"
- Have a active Zone in Cloudflare. (Your own domain, too)
- Have a A Record.
-
Open Task Scheduler (Control Panel - [Services] Task Scheduler)
-
Create a user-defined script item. Create - Triggered Task - User-defined script
[General Tab]
Task: Cloudflare DDNS (not important)
User: root
Event: Boot-up
Pre-task: none
Enabled: Checked
[Task Settings Tab]
[Run Command] User-defined script
curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/setddns.py | python3 -
-
Press OK
-
Right-Click on the task you've just created.
-
Click Run
-
You can see Cloudflare DDNS has been added to your DDNS list.
-
Setup DDNS in Synology DSM (You can use "API Tokens" or "Global API Key")
a. Using API Tokens (Recommended)
(1) Single Domain and single permission can granted with a Token -> more secure
(2) How to create: Cloudflare - My Profile - API Tokens - Create Token (Use "Edit zone DNS" template, required permission: Zone - DNS - Edit)
(3) Synology DDNS SettingsUsername: Anything you want(not using when authorize the token) Password: API Token (40 byte)
b. Using Global API Key
(1) All permission with a single API Key - less secure
(2) How to view: Cloudflare - My Profile - API Tokens - Global API Key - Click "View"
(3) Synology DDNS SettingsUsername: Cloudflare Username Password: Global API Key (37 byte)
- Connect via SSH. (can be activated in DSM)
- Execute
sudo curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/cloudflare.php -o /usr/syno/bin/ddns/cloudflare.php && sudo chmod 755 /usr/syno/bin/ddns/cloudflare.php
- Add some notes to end of DDNS config file. You can use your preferred text-editor. (sudo vi /etc.defaults/ddns_provider.conf)
[Cloudflare]
modulepath=/usr/syno/bin/ddns/cloudflare.php
queryurl=https://www.cloudflare.com/
- Set up DDNS in DSM (Use your Cloudflare Global API Key(can be found in My Profile) as a password)
- 시놀로지DSM에서 클라우드플레어(Cloudflare) DDNS를 이용하기 위한 스크립트임.
- 최소한의 세팅이 필요함.
- 클라우드플레어 v4 API를 사용함.
- 클라우드플레어에 Zone을 등록하여야 함(자기만의 도메인도 필요함)
- 클라우드플레어에 DDNS로 사용할 도메인 레코드가 등록되어 있어야 함.
-
제어판에서 작업 스케줄러를 실행합니다.
-
사용자 정의 스크립트를 생성합니다. 생성 - 트리거된 작업 - 사용자 정의 스크립트
[일반설정]
작업: Cloudflare DDNS (중요하지않음)
사용자: root
이벤트: 부트업
사전 작업: 없음
활성화됨: 체크
[작업 설정]
[실행명령] 사용자 정의 스크립트
curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/setddns.py | python3 -
-
확인을 누릅니다.
-
방금 생성한 작업에 마우스 우클릭을 합니다.
-
실행을 클릭합니다.
-
DDNS 목록에 Cloudflare가 추가된 것을 확인할 수 있습니다.
-
시놀로지 DSM에서 DDNS 설정을 합니다. (2가지 방식 중 하나 선택)
가. API Tokens 사용하기 (권장)
(1) 한개의 토큰으로 특정 도메인 및 권한만 부여하여 사용할 수 있어 유출시에도 다른 도메인이나 권한이 없는 영역에 접근 불가 -> 보안상 이점 가짐
(2) 생성방법: Cloudflare - My Profile - API Tokens - Create Token ("Edit zone DNS" 템플릿 사용, 필요한 권한: Zone - DNS - Edit)
(3) Synology 설정에서 패스워드/키 칸에 생성된 API Token (40 바이트)을 입력하면 됩니다.(사용자 이름/이메일은 아무값이나 입력)나. Global API Key 사용하기
(1) 한개의 키로 모든 권한을 가짐 - 보안상 취약
(2) 확인방법: Cloudflare - My Profile - API Tokens - Global API Key - View 클릭
(3) Synology 설정에서 패스워드/키 칸에 확인된 Global API Key (37 바이트)를 입력하면 됩니다.(사용자 이름/이메일은 Cloudflare 계정 입력)
- SSH로 접속합니다. (DSM 설정에서 활성화 할 수 있습니다.)
- 다음의 명령을 실행합니다.
sudo curl https://raw.githubusercontent.com/namukcom/SynologyCloudflareDDNS/master/cloudflare.php -o /usr/syno/bin/ddns/cloudflare.php && sudo chmod 755 /usr/syno/bin/ddns/cloudflare.php
- DDNS 설정 파일에 다음의 내용을 추가합니다. 마음에 드는 편집기로 수정하시기 바랍니다. (sudo vi /etc.defaults/ddns_provider.conf)
[Cloudflare]
modulepath=/usr/syno/bin/ddns/cloudflare.php
queryurl=https://www.cloudflare.com/
- 시놀로지 DSM에서 DDNS 설정을 합니다. (클라우드플레어 Global API Key(클라우드플레어 My Profile메뉴밑에 있음)를 비밀번호로 입력하면 됩니다.)