Cloudflare에 DDNS 처럼 사용하려면 API 토큰을 발급 받아야합니다.
(1) Cloudflare에서 My Profile 메뉴 선택
(2) API Tokens 메뉴 선택
(3) Create Token 선택
(4) Edit zone DNS 옆의 Use template 단추 클릭
(5) Add more 클릭
(6) Zone 선택
(7) Zone 선택
(8) Read 선택
(9) All zones 선택
(10) 아래쪽으로 스크롤 해서 Continue to summary 단추 클릭
(11) Create token 단추 클릭
(12) API Token 값을 잘 기록해 놓습니다. 꼭!이요. 이 페이지 넘어가고 나면, 다시 토큰 값을 볼 수 없습니다.
(13) Proxmox VE 호스트 CLI에 접속해서 ddclient를 설치합니다.
apt install -y ddclient
(13) 설치가 진행되다가 그림과 같은 화면이 나옵니다. 화살표 키로 other로 이동해서 엔터 키를 누릅니다.
(14) 화살표 키로 cloudflare로 이동해서 엔터 키를 누릅니다.
(15) Username에 token
이라고 입력하고 엔터 키를 누릅니다.
(16) 앞서 만든 API Token를 복사해서 붙여 넣습니다.
(17) API Token를 한번 더 복사해서 붙여 넣습니다.
(18) Web-based IP discovery service 선택된거 확인하고 엔터 키를 누릅니다.
(19) 업데이트할 호스트 주소를 입력합니다. 예 www.homecloud.kr
(20) 패키지 설치화면으로 돌아오고 설치가 마무리 됩니다.
(21) 생성된 구성 파일 내용을 확인합니다.
root@pve-02:~# cat /etc/ddclient.conf # Configuration file for ddclient generated by debconf # # /etc/ddclient.conf protocol=cloudflare \ use=web, web=ipify-ipv4 \ login=token \ password='UMOs_6_xpszh9L_ukBFYJcr_Eqt_3zztR9awJTaF' \ www.homecloud.kr root@pve-02:~#
아쉽게도 이대로 실행하면 오류 납니다. systemctl status ddclient로 확인해보면 아래와 같이 zone 설정에 문제가 있어서 오류가 나는 것을 확인할 수 있습니다.
root@pve-02:~# systemctl status ddclient ● ddclient.service - Update dynamic domain name service entries Loaded: loaded (/lib/systemd/system/ddclient.service; enabled; preset: enabled) Active: active (running) since Sat 2025-02-01 19:42:57 KST; 1min 35s ago Docs: man:ddclient(8) Process: 3851826 ExecStart=/usr/bin/ddclient -daemon $daemon_interval -syslog -pid /run/ddclient.pid (code=exit> Main PID: 3851853 (ddclient - slee) Tasks: 1 (limit: 38439) Memory: 11.3M CPU: 152ms CGroup: /system.slice/ddclient.service └─3851853 "ddclient - sleeping for 210 seconds" Feb 01 19:42:57 pve-02 systemd[1]: Starting ddclient.service - Update dynamic domain name service entries... Feb 01 19:42:57 pve-02 ddclient[3851826]: WARNING: skipping host: www.homecloud.kr: 'zone=' is an invalid fully qu> Feb 01 19:42:57 pve-02 ddclient[3851852]: WARNING: skipping host: www.homecloud.kr: 'zone=' is an invalid fully qu> Feb 01 19:42:57 pve-02 systemd[1]: Started ddclient.service - Update dynamic domain name service entries. Feb 01 19:42:57 pve-02 ddclient[3851855]: WARNING: skipping host: www.homecloud.kr: 'zone=' is an invalid fully qu>
(22) root@pve-02:~# nano /etc/ddclient.conf
명령으로 구성 파일을 엽니다.
root@pve-02:~# nano /etc/ddclient.conf
(23) 그림 처럼 zone=homecloud.kr, 과 같이 zone 정보를 추가하고, 저장하고, 에디터를 종료합니다.
(24) 변경한 ddclient.conf 내용을 적용하기 위해서 systemctl restart ddclient
명령으로 ddclient 서비스를 재시작합니다. 그 다음 systemctl status ddclient
명령으로 확인해보면 WARNING 메시지가 없는 것을 확인할 수 있습니다.
root@pve-02:~# systemctl restart ddclient root@pve-02:~# systemctl status ddclient ● ddclient.service - Update dynamic domain name service entries Loaded: loaded (/lib/systemd/system/ddclient.service; enabled; preset: enabled) Active: active (running) since Sat 2025-02-01 19:49:15 KST; 31s ago Docs: man:ddclient(8) Process: 3852849 ExecStart=/usr/bin/ddclient -daemon $daemon_interval -syslog -pid /run/ddclient.pid (code=exit> Main PID: 3852852 (ddclient - slee) Tasks: 1 (limit: 38439) Memory: 20.2M CPU: 486ms CGroup: /system.slice/ddclient.service └─3852852 "ddclient - sleeping for 280 seconds" Feb 01 19:49:15 pve-02 systemd[1]: Starting ddclient.service - Update dynamic domain name service entries... Feb 01 19:49:15 pve-02 systemd[1]: Started ddclient.service - Update dynamic domain name service entries. root@pve-02:~#
ddclient는 설치 과정에서 호스트가 리부팅 되어도 자동으로 시작되게 구성되었습니다. 또한 5분 마다 자동으로 실행되어서 변경된 IP 정보를 Cloudflare DNS에 업데이트 합니다.