Skip to content

Commit eeda168

Browse files
committed
duck_dns: post added
1 parent d133daa commit eeda168

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

_posts/2025-07-03-duck_dns.md

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

0 commit comments

Comments
 (0)