가정이나 소규모 사무실 회선은 공인 IP 가 고정되지 않는다. 재접속이나 모뎀 재기동 때마다 주소가 바뀌므로 밖에서 들어올 이름이 필요하다. DDNS(Dynamic DNS) 는 이름 하나를 주고, 클라이언트가 주기적으로 현재 IP 를 알려 A 레코드를 갱신하는 구조다.
공유기 / 서버 (updater)
-> HTTPS 갱신 요청 (현재 IP)
DDNS 제공자 권한 네임서버
-> myhost.example-ddns.net A <바뀐 IP>
무료 정책은 제공자가 자주 바꾼다. 아래는 성격을 잡는 용도이고, 실제 개수와 제한은 가입 직전에 제공자 페이지에서 다시 확인한다.
| 서비스 | 성격 | 무료 범위 | 걸리는 점 |
|---|---|---|---|
| No-IP | 가장 대중적. 공유기 펌웨어에 기본 내장된 경우가 많다 | 호스트명 1개[1] | 30일마다 웹에서 확인 버튼을 눌러야 유지된다. 놓치면 이름이 사라진다 |
| DuckDNS | 토큰 하나로 URL 호출만 하면 끝나는 경량 서비스 | 서브도메인 5개 (확인 필요) | UI 가 거의 없다. 자체 도메인은 쓸 수 없다 |
| Dynu | 무료 등급에서 자체 도메인과 여러 호스트명을 허용 | 호스트명 복수 · 자체 도메인 가능 (확인 필요) | 기능이 많은 만큼 설정 항목도 많다 |
| FreeDNS (afraid.org) | 공유 도메인 목록에서 골라 쓰는 오래된 서비스 | 호스트명 복수 (확인 필요) | 공유 도메인이 다른 사용자의 사용 이력 때문에 차단 목록에 올라 있을 수 있다 |
| MyDNS.JP | IPv4 · IPv6 · 와일드카드를 함께 다룬다 | 자체 도메인 위임 가능 (확인 필요) | 일본어 화면. 갱신을 오래 멈추면 계정이 잠긴다 |
용도부터 정하면 후보가 빨리 줄어든다.
공유기가 처리하지 못하면 서버에서 직접 돌린다. ddclient 가 가장 널리 쓰인다.
# /etc/ddclient.conf
protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login=${DDNS_USER}
password=${DDNS_PASSWORD}
myhost.example.net
sudo systemctl enable --now ddclient
sudo ddclient -daemon=0 -debug -verbose -noquiet
URL 방식만 제공하는 서비스라면 cron 이나 systemd timer 로 충분하다.
curl -fsS "https://www.duckdns.org/update?domains=${DDNS_HOST}&token=${DDNS_TOKEN}&ip="
No-IP 무료 등급 — 2026-09-20 확인. https://www.noip.com/free ↩︎