Post

Duck DNS로 DDNS 설정하기 - Mac Mini로 홈서버 구축하기 #1

집에서 놀고 있는 Mac Mini로 홈서버 겸 API 서버를 구축하려고 합니다.
집에서 쓰는 인터넷은 IP가 비정기적으로 변경될 수 있으니, DDNS(Dynamic DNS) 서비스를 이용해 집 IP에 접근 가능한 도메인을 등록해줍니다.

DuckDNS 가입 및 정보 확인

DuckDNS란

DuckDNS는 무료로 제공되는 동적 DNS 서비스입니다. 공유기나 ISP에서 할당하는 IP 주소가 변경되어도 항상 같은 도메인으로 접속할 수 있게 해주는 서비스로, 개인 프로젝트나 홈서버 운영에 매우 유용합니다.

DuckDNS 웹사이트 접속

DuckDNS 웹사이트에 접속한 후, 원하는 방식(Google, GitHub, Reddit 등)으로 로그인합니다.

서브도메인(호스트 이름) 생성

“Sub-domains” 입력란에 사용할 이름(예: myhome)을 입력한 후 “add domain” 버튼을 클릭합니다.
생성된 myhome.duckdns.org가 표시되는지 확인합니다.

토큰(Token) 복사

화면 중앙 상단 “Account” 섹션에서 토큰(Token) 문자열을 복사해 둡니다. 이 토큰은 스크립트 인증에 필요합니다.

Duck DNS Token

업데이트 스크립트 등록 및 자동 실행 설정

작업 디렉터리 생성 및 스크립트 작성

1
2
3
mkdir -p ~/duckdns
cd ~/duckdns
vi duck.sh

아래 내용을 복사해서 붙여넣고, YOUR_SUBDOMAINYOUR_TOKEN을 본인의 값으로 변경합니다:

1
2
3
4
5
6
7
#!/opt/local/bin/bash
DOMAIN="YOUR_SUBDOMAIN"  # 예: myhome
TOKEN="YOUR_TOKEN"

# DuckDNS 업데이트 요청 및 결과 로그 저장
echo url="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=" \
  | curl -k -o ~/duckdns/duck.log -K -

실행 권한을 부여합니다:

1
chmod 700 duck.sh

cron에 등록하기

1
crontab -e

맨 아래에 다음 줄을 추가하여 5분마다 업데이트가 실행되도록 설정합니다:

1
*/5 * * * * /Users/{YOUR_MAC_ACCOUNT_NAME}/duckdns/duck.sh >/dev/null 2>&1

참고: {YOUR_MAC_ACCOUNT_NAME}은 Mac 로그인 아이디로 수정하세요. ($ whoami 명령어 실행 결과)

저장 후 종료합니다.

동작 확인

스크립트를 수동 실행해 보고 에러 없이 프롬프트로 돌아오면 정상 실행된 것입니다:

1
~/duckdns/duck.sh

로그를 확인합니다 (OK 또는 KO 출력):

1
cat ~/duckdns/duck.log

참고사항

  • Duck DNS는 무료 서비스로, 하루에 최대 1,000회 업데이트가 가능합니다
  • 5분마다 업데이트하도록 설정했으므로 충분한 여유가 있습니다
  • 외부에서 yourdomain.duckdns.org로 접속하여 설정이 제대로 되었는지 확인할 수 있습니다
  • 스크립트가 정상적으로 실행되면 ~/duckdns/duck.log 파일에 “OK”라는 메시지가 기록됩니다
This post is licensed under CC BY 4.0 by the author.