Skip to content

Commit 86a801c

Browse files
committed
duck_dns: post added
1 parent d133daa commit 86a801c

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

_posts/2025-07-03-duck_dns.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
layout: post
3+
title: "Duck DNS로 DDNS 설정하기 - Mac Mini로 홈서버 구축하기 #1"
4+
description: "Mac Mini로 홈서버를 구축할 때 필요한 DDNS 설정 방법을 안내합니다. DuckDNS를 사용하여 무료로 동적 DNS를 설정하고, cron을 통해 자동으로 IP 업데이트하는 방법을 단계별로 설명합니다."
5+
date: 2025-07-03
6+
categories: [Tips]
7+
---
8+
9+
집에서 놀고 있는 Mac Mini로 홈서버 겸 API 서버를 구축하려고 합니다.
10+
집에서 쓰는 인터넷은 IP가 비정기적으로 변경될 수 있으니, DDNS(Dynamic DNS) 서비스를 이용해 집 IP에 접근 가능한 도메인을 등록해줍니다.
11+
12+
## DuckDNS 가입 및 정보 확인
13+
14+
### DuckDNS란
15+
DuckDNS는 무료로 제공되는 동적 DNS 서비스입니다. 공유기나 ISP에서 할당하는 IP 주소가 변경되어도 항상 같은 도메인으로 접속할 수 있게 해주는 서비스로, 개인 프로젝트나 홈서버 운영에 매우 유용합니다.
16+
17+
### DuckDNS 웹사이트 접속
18+
[DuckDNS 웹사이트](https://duckdns.org)에 접속한 후, 원하는 방식(Google, GitHub, Reddit 등)으로 로그인합니다.
19+
20+
### 서브도메인(호스트 이름) 생성
21+
"Sub-domains" 입력란에 사용할 이름(예: `myhome`)을 입력한 후 "add domain" 버튼을 클릭합니다.
22+
생성된 `myhome.duckdns.org`가 표시되는지 확인합니다.
23+
24+
### 토큰(Token) 복사
25+
화면 중앙 상단 "Account" 섹션에서 토큰(Token) 문자열을 복사해 둡니다. 이 토큰은 스크립트 인증에 필요합니다.
26+
27+
![Duck DNS Token](/assets/img/duck_dns/duck_dns_token.png)
28+
29+
## 업데이트 스크립트 등록 및 자동 실행 설정
30+
31+
### 작업 디렉터리 생성 및 스크립트 작성
32+
33+
```bash
34+
mkdir -p ~/duckdns
35+
cd ~/duckdns
36+
vi duck.sh
37+
```
38+
39+
아래 내용을 복사해서 붙여넣고, `YOUR_SUBDOMAIN``YOUR_TOKEN`을 본인의 값으로 변경합니다:
40+
41+
```bash
42+
#!/opt/local/bin/bash
43+
DOMAIN="YOUR_SUBDOMAIN" # 예: myhome
44+
TOKEN="YOUR_TOKEN"
45+
46+
# DuckDNS 업데이트 요청 및 결과 로그 저장
47+
echo url="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=" \
48+
| curl -k -o ~/duckdns/duck.log -K -
49+
```
50+
51+
실행 권한을 부여합니다:
52+
53+
```bash
54+
chmod 700 duck.sh
55+
```
56+
57+
### cron에 등록하기
58+
59+
```bash
60+
crontab -e
61+
```
62+
63+
맨 아래에 다음 줄을 추가하여 5분마다 업데이트가 실행되도록 설정합니다:
64+
65+
```bash
66+
*/5 * * * * /Users/{YOUR_MAC_ACCOUNT_NAME}/duckdns/duck.sh >/dev/null 2>&1
67+
```
68+
69+
> **참고**: `{YOUR_MAC_ACCOUNT_NAME}`은 Mac 로그인 아이디로 수정하세요. (`$ whoami` 명령어 실행 결과)
70+
71+
저장 후 종료합니다.
72+
73+
### 동작 확인
74+
75+
스크립트를 수동 실행해 보고 에러 없이 프롬프트로 돌아오면 정상 실행된 것입니다:
76+
77+
```bash
78+
~/duckdns/duck.sh
79+
```
80+
81+
로그를 확인합니다 (OK 또는 KO 출력):
82+
83+
```bash
84+
cat ~/duckdns/duck.log
85+
```
86+
87+
## 참고사항
88+
89+
- Duck DNS는 무료 서비스로, 하루에 최대 1,000회 업데이트가 가능합니다
90+
- 5분마다 업데이트하도록 설정했으므로 충분한 여유가 있습니다
91+
- 외부에서 `yourdomain.duckdns.org`로 접속하여 설정이 제대로 되었는지 확인할 수 있습니다
92+
- 스크립트가 정상적으로 실행되면 `~/duckdns/duck.log` 파일에 "OK"라는 메시지가 기록됩니다
26.7 KB
Loading

0 commit comments

Comments
 (0)