Hwan'Story › @kim-hwan

도커를 이용한 cloudflare-ddns 적용하기

· · 조회 4777

도커를 이용한 cloudflare-ddns 적용하기

유동 아이피 + 개인 도메인에 대해서 클라우드 플레어 API를 이용한 DDNS 를 설정하는 방법을 알아본다.

왜 필요한가?

고정 IP를 할당받아 사용하지 않는 이상은 대부분의 가정에서는 유동 IP를 이용한다. 이 때 집에서 서버를 운영하다 IP가 변경되게 되면 설정했던 도메인의 A 레코드를 계속 바꿔줘야 하는 불편함과 그 사이에 도메인을 통해 서버에 접속하지 못하는 상황이 발생한다. 이 때 외부에 나와있어 변경된 IP를 알지못하는 상황이라면 집에 가서 IP를 확인하기 전까지는 서버에 접속을 할 수 없다.

그런데 만약 변경된 IP에 대해서 자동으로 도메인의 A 레코드 설정을 해줄 수 있도록 한다면 위의 불편함이 해결된다.

적용방법

클라우드 플레어의 DNS API를 이용해야 하기 때문에 본인의 도메인이 클라우드 플레어 DNS 서버에 등록이 되어 있어야 한다. 클라우드 플레어에서 도메인을 구매하지 않았더라도 본인이 구매한 도메인의 네임서버를 변경할 수 있다면 가능하다.

1. 클라우드 플레어에 본인의 도메인을 등록

image.png 네임서버를 어떤 주소로 해야 하는지는 Add a Site 클릭 후 도메인 주소를 입력하면 친절하게 설명이 나온다.

2. API 토큰 발급

  1. My Profile 로 이동한다. image.png
  2. 좌측 메뉴에서 "API Tokens" 클릭 후 "Create Token" 클릭 image.png
  3. Edit zone DNS 우측의 Use template 클릭 image.png
  4. 아래 그림과 같이 3가지 권한을 설정한다. image.png
  5. 발급받은 API 토큰을 복사해둔다. image.png\
  6. 도커 허브에 올라와 있는 이미지(oznu/cloudflare-ddns)를 실행한다. docker run -d --restart=always -e API_KEY=[본인의 API 토큰] -e ZONE=[본인 도메인] oznu/cloudflare-ddns (추가적인 기능은 해당 도커허브의 설명을 참고)

그 후 컨테이너의 로그를 조회해 보면 동작 상태를 볼 수 있다.

image.png (주기적으로 현재 IP와 도메인이 등록되어 있는 IP가 다르다면 갱신한다)

이제 서버의 IP가 변경이 되더라도 도메인에 자동으로 변경된 IP가 적용되게 된다.