DDNS를 지원하지 않는 공유기를 사용중이라면, ddclient를 이용해 Cloudflare를 DDNS로 사용할 수 있다.
Cloudflare의 리소스대로 따라하면 잘 되지 않는다.
먼저, ddclient를 설치해야 한다. 설치는 프로젝트 홈페이지에서 직접 다운받아 설치할 수 있다. Debian 계열의 리눅스를 사용중이라면, apt install ddclient
로도 설치할 수 있다.
설치하는 과정에 config파일을 만들기 위해 이것저것 정보를 물어보는데, 어차피 다 지우고 다시 입력할 것이기 때문에, 아무거나 입력해도 된다.
ddclient의 설정 파일은 /etc/ddclient.conf
에 있다. 물론, 시스템에 따라 다를 수 있다.
파일을 열고 아래와 같이 수정하면 된다.
ssl=yes use=web protocol=cloudflare server=api.cloudflare.com/client/v4 login=[Cloudflare 로그인 이메일] password=[Cloudflare Global API Key] zone=[도메인 이름] [등록하려고 하는 호스트 네임]
Cloudflare Global API Key는 My Profile에서 알아낼 수 있다.
예를 들어, stack.news를 사용하고 싶으면 아래와 같이 설정 파일을 만들면 된다.
ssl=yes use=web protocol=cloudflare server=api.cloudflare.com/client/v4 login=[Cloudflare 로그인 이메일] password=[Cloudflare Global API Key] zone=stack.news stack.news
test.stack.news를 사용하고 싶으면 아래와 같이 설정 파일을 만들면 된다.
ssl=yes use=web protocol=cloudflare server=api.cloudflare.com/client/v4 login=[Cloudflare 로그인 이메일] password=[Cloudflare Global API Key] zone=stack.news test.stack.news
apt
를 이용해 설치했으면, 자동으로 데몬에 등록이 된다.
직접 압축을 풀어 설치한 경우에는 crontab
에 등록해서 사용할 수 있다.
정상적으로 되는지 확인은 Cloudflare에 로그인해서 알아볼 수 있으며, 터미널에 ddclient
를 입력해 실행하거나, syslog
를 열어서 로그를 확인할 수 있다.
FATAL: Error loading the Perl module JSON::Any needed for cloudflare update.
와 같은 에러가 발생하는 경우에는 apt install libjson-any-perl
로 해결할 수 있다.
Cloudflare 프로토콜은 3.8.3 버전부터 지원한다.
[2019년 4월 1일 내용 추가]
이제 ddclient 3.8.3을 사용하면, Cloudflare에서 HTTP 410 Gone을 보내 업데이트가 되지 않는다. 이를 해결하려면 3.9.0으로 올리면 된다.
3.9.0으로 올리면 301 Moved Permanently를 보내서 또 업데이트가 안된다.
server=api.cloudflare.com/client/v4
로 바꾸면 해결할 수 있다.
디버깅은 ddclient -daemon=0 -debug -verbose -noquiet
로 했다.
마지막으로 실행한 시간으로부터 5분이 지나지 않으면, 업데이트를 하지 않는데, 캐시를 지우면 업데이트를 한다. 캐시는 /var/cache/ddclient/ddclient.cache
에 있다.
영어로 된 문서보며 따라하다가 잘 안되는거 덕분에 잘 해결되었습니다. 감사합니다. 도메인 주소와 컨텐츠가 간지나네요~ 댓글 달때 아래 워드프레스 아이콘 눌렀는데 워드프레스 닷컴 로그인이 안되던데 저만 그런건지 모르겠습니다.
영어는 이부분이 클라우드플레이어 주소로 되어있었는데 말씀하신대로 api.cloudflare.com/client/v4 넣으니 한번에 해결되었네요.