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) 문자열을 복사해 둡니다. 이 토큰은 스크립트 인증에 필요합니다.
업데이트 스크립트 등록 및 자동 실행 설정
작업 디렉터리 생성 및 스크립트 작성
1
2
3
mkdir -p ~/duckdns
cd ~/duckdns
vi duck.sh
아래 내용을 복사해서 붙여넣고, YOUR_SUBDOMAIN
과 YOUR_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”라는 메시지가 기록됩니다