개요
안녕하세요 HiDAN 입니다.
ddclient은 동적 DNS(Dynamic DNS, DDNS) 클라이언트로, 사용자의 IP 주소가 변경될 때 자동으로 DDNS 서비스 제공업체에 업데이트하는 기능을 제공해주는데요.
오늘은 Ubuntu에서 ddclient를 설치하고, Cloudflare에 서버의 공인IP를 추적 및 업데이트하는 방법에 대해 알아보겠습니다.
🔹 DDNS란?
DDNS(Dynamic DNS)는 공인 IP가 수시로 변경되는 환경(예: 가정용 인터넷)에서 도메인과 IP를 지속적으로 연결해 주는 서비스입니다.
예를 들어, 인터넷 공급업체(ISP)는 공인 IP를 유동적으로 할당 및 변경하기 때문에 사용하는 공인IP가 변경 될 수 있습니다.
그런데 개인 서버(홈서버, NAS, CCTV 등)를 운영하려면 고정된 도메인을 사용해야 합니다.
이때 DDNS를 설정하면 도메인이 항상 현재 IP를 가리키도록 자동으로 업데이트 할 수 있습니다.
.
🔹 ddclient란?
ddclient는 동적 DNS(Dynamic DNS)를 업데이트하는 데 사용되는 오픈소스 클라이언트입니다.
인터넷 서비스 제공업체(ISP)로부터 할당받는 동적 IP 주소를 자동으로 Cloudflare와 같은 DNS 서비스에 업데이트할 수 있습니다.
✅ ddclient를 사용하는 이유
- 집에서 서버를 운영할 때 도메인과 연결 유지 가능
- IP 주소가 변경될 때마다 자동 업데이트
- Cloudflare를 이용한 무료 DDNS 구축 가능
🔹 사전 Cloudflare API 토큰 발급하기
ddclient를 사용하기 위해선 API 토큰이 필요합니다.
먼저 Cloudflare Dashboard 개요 페이지로 이동합니다.
하단에 보시면, API 토큰 가져오기를 클릭합니다.
토큰 생성을 눌러줍니다.
아래와 같이 설정하고, 토큰을 생성해주세요.
반드시 생성된 토큰을 복사해서 메모장 등에 기억해둡니다.
🔹 설치 및 설정 방법 (Ubuntu + Cloudflare)
Ubuntu의 경우, 패키지 설치를 지원하고 있습니다.
ddclient 패키지 버전 : https://repology.org/project/ddclient/versions
그리고 수동 설치가 필요한 경우, 아래 github 페이지를 참고해주세요.
ddclient github : https://github.com/ddclient/ddclient?tab=readme-ov-file
이번에 저는 패키지를 통한 설치 방법에 대해 알아보겠습니다.
제가 이용할 Ubuntu 24.04의 경우, 현재 3.8.3 버전까지 지원하고 있네요.
hidan@ZY-AK2PLUS:~/Desktop$ sudo apt search ddclient
Sorting... Done
Full Text Search... Done
ddclient/noble 3.10.0-2 all
address updating utility for dynamic DNS services
apt 명령어로 ddclient를 설치합니다.
hidan@ZY-AK2PLUS:~/Desktop$ sudo apt install ddclient
설치가 완료되면, 설정 화면이 나옵니다.
DDNS 제공업체로 Cloudflare를 이용할 것이기 때문에 other를 선택합니다.
DNS 서비스 제공 업체로 cloudflare를 선택합니다.
Username으로 token을 입력합니다.
(색상이 이상한건 스크린샷을 놓쳐서 다른 서버에서 찍어서 그렇습니다🤣)
Password에는 Cloudflare에서 발급 받은 API Token을 입력합니다.
공유기를 이용하시는 경우, Web-based IP discovery service를 선택합니다.
업데이트할 자신의 호스트 도메인을 입력합니다.
설정을 완료하려면 한 가지 더 수정이 필요합니다.
/etc/ddclient.conf 파일을 열어주세요.
hidan@ZY-AK2PLUS:~/Desktop$ sudo vim /etc/ddclient.conf
아래와 같이 설정 파일에 zone=mydns.com 옵션을 추가해주어야 합니다.
# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
protocol=cloudflare \
zone=mydns.com
use=web, web=ipify-ipv4 \
login=token \
password='cloud_flare_api_token' \
mydns.com, *.mydns.com
ddclient 동작이 잘 되는지, 아래 명령어로 디버깅을 실행합니다.
정상 동작한다면, 아래와 같이 마지막에 IP를 업데이트 성공 로그가 출력 됩니다.
참고로 ddclient는 기본적으로 300초(5분)에 한 번 실행됩니다.
hidan@ZY-AK2PLUS:~/Desktop$ ddclient --daemon=0 --debug --verbose
... 생략
SUCCESS: updating mydns.com: IPv4 address set to X.X.X.X
마무리
여기까지 Ubuntu에서 ddclient를 사용하여 Cloudflare와 동적 IP 주소를 자동으로 업데이트하는 방법을 배웠습니다! 🎉
궁금한 점이 있으면 댓글로 남겨 주세요! 😊
감사합니다!