유명한 ddns 제공 사이트인 no-ip와 duckdns 의 서비스를 사용하거나 dnszi나 dnsever 과 같은 국내 업체에서도 ddns 기능을 사용할 수 있지만 ip를 갱신하는 방법이라던가 사용 방식이 나와는 맞지 않아 DDNS 서버로 기존에 CDN으로만 사용해온 클라우드플레어를 사용하게 되었다.

난 리눅스 서버를 사용하기에 아래의 설명은 리눅스용으로 작성한다. 윈도우에서는 클리앙에 설명되어 있는 글을 참고하면 된다.

ddclient 3.8.2버전부터는 cloudflare 프로토콜이 정식 지원을 하기 시작하여 그냥 사용하면 되지만 그 이전버전은 cloudflare를 사용하기 위해 따로 패치를 해 주어야 한다. 패치파일을 어디서 찾는지 모르겠으니 사용하는 리눅스의 기본 repository에서 구버전 설치만 제공한다면 최신버전 소스를 다운받아 빌드해서 설치하자.
ddclient의 기본 설정파일은 /etc/ddclient/ddclient.conf 에 위치한다. 기본 설정파일을 수정해도 되지만 삭제한 후 새로 설정값을 입력해주는게 편하다. 내 서버에서 사용중인 설정값을 참고용으로 적어 두었다.

daemon 값은 ip를 동기화할 주기이다. 초로 계산하므로 180이면 3분에 한번 동기화하는 것이다.
난 공유기를 물려놓지 않았기에 ifconfig eth0값으로 받아온 ip를 사용하게 해 두었는데 공유기를 사용한다거나 해서 ifconfig으로 외부 아이피를 알아낼수 없다면

부분을

로 수정해준다. Dyndns 사이트에서 공인ip를 불러오는 방법이다.
zone값과 password 다음줄에 elpo.net 으로 내 도메인이 입력되어 있는데 ddns 로 자동 반영되게 하고 싶은 도메인을 입력해 준다.
login 부분에는 클라우드플레어의 계정 이메일을 입력하고, password부분에서는 클라우드플레어 계정 api 를 입력해준다.
마이페이지 밑쪽에서 api key를 확인할 수 있다. 계정 비밀번호와 동급으로 중요하므로 외부에 노출되지 않도록 하자.
설정값을 저장해 준 후 sudo ddclient-daemon=0 -debug -verbose -noquiet 명령어를 사용해 DDNS 설정 테스트를 해볼 수 있다. DDNS서비스가 정상적으로 작동한다면 SUCCESS 가 표시 될 것이다.

만약 이런 오류가 발생한다면 우분투에서는 apt-get install libjson-perl, RedHat/CentOS에서는 yum install perl-JSON-Any 명령어로 필요한 라이브러리를 설치해 주면 된다.