반응형

도메인 네임서버로 Cloudflare를 사용한다면 Cloudflare API를 활용해서 DDNS 기능을 무료로 사용할 수 있다. 별도의 클라이언트 프로그램 없이 API 호출만으로 간편하게 설정할 수 있고, 자신의 도메인을 그대로 활용할 수 있는 장점이 있다. 반면, DuckDNS 같은 서비스는 *.duckdns.org 형태의 서브도메인만 제공하므로 원하는 도메인을 직접 사용할 수 없다.

 

시놀로지 Nas에서 Cloudflare를 연동하는 방법은 크게 작업 스케줄러에 스크립트를 등록하는 방식과 Docker 컨테이너를 실행하는 방식이 있다. 두 방법 모두 설정하는데 크게 어렵지 않지만 환경변수를 통해 설정을 관리하기 용이한 Docker 방식을 추천한다.

 

기본적으로 1개 도메인(example.com)에 대한 여러 서브도메인(a.example.com, b.example.com, …)만 지정할 수 있지만, 도메인마다 별도의 컨테이너를 실행하는 방식으로 다중 도메인을 관리할 수도 있다.

 

 

시작하기 앞서


  • Cloudflare에 자신의 도메인이 등록되어 있어야 한다.
  • 나스에 Container Manager 패키지가 설치되어 있어야 한다(패키지 센터에서 설치).
  • 도커 이미지는 사용하기 쉬운 favonia/cloudflare-ddns를 사용했다.
  • 본 가이드는 DSM 7.2.2 버전을 기준으로 작성했다.

 

 

Cloudflare API Token 발급


Cloudflare API 토큰 페이지 접속 후 "토큰 생성" 버튼 클릭

 

"영역 DNS 편집" 템플릿 사용 버튼 클릭

 

"영역 리소스" 항목에서 도메인 선택 후 하단 "요약 계속" 버튼 클릭

 

토큰 생성 후 복사. 이후 단계에서 토큰이 필요하므로 잊어버리지 않도록 주의하자.

 

 

도커 컨테이너 설정


① Container Manager - 좌측 "레지스트리" 메뉴 클릭 - 우측 상단 검색창에 favonia 입력 - 하단 검색 결과에서 favonia/cloudflare-ddns 더블 클릭

 

latest 태그 선택 후 "적용" 버튼 클릭

 

좌측 "이미지" 메뉴 클릭 - 목록에서 favonia/cloudflare-ddns 선택 후 "실행" 버튼 클릭

 

④ 컨테이너 이름 지정 후 "다음" 버튼 클릭

 

❺ 💡 환경 변수 설정. 중요한 부분이니 정확하게 입력하자. 링크에서 더 많은 환경 변수 목록을 확인할 수 있다.

환경 변수 설명 예시
DOMAINS Cloudflare에 등록한 도메인 apple.com
IP6_PROVIDER IPv6 제공자. 해당 사항 없으면 none 입력 none
PUID 컨테이너의 사용자 ID. 1000 입력 1000
PGID 컨테이너의 그룹 ID. 1000 입력 1000
IP4_DOMAINS 적용할 서브 도메인 목록(쉼표로 구분) a.apple.com,bar.apple.com
CF_API_TOKEN Cloudflare API 토큰 복사한 토큰 붙여넣기

 

"마법사 완료 후 이 컨테이너 실행" 옵션에 체크 후 "완료" 버튼 클릭(그럼 컨테이너가 자동으로 실행된다).

 

 

DNS 레코드 확인


이제 Cloudflare의 DNS 레코드 목록 페이지를 보면 입력했던 서브 도메인들이 자동으로 추가된 걸 확인할 수 있다. 기본적으로 5분 간격으로 공인 IP 주소를 감지하고 DNS 레코드를 업데이트한다. 업데이트 간격을 조절하고 싶으면 UPDATE_CRON 환경 변수를 추가하고 원하는 시간 간격을 CRON 표현식으로 입력하면 된다.

 

 

컨테이너가 중지될 때 등록한 DNS 레코드를 모두 삭제하고 싶다면 DELETE_ON_STOP 환경 변수 값을 true로 설정하면 된다.

 
반응형