홈 서버 만들기 06. Dynamic DNS: 구글 도메인 + ddclient

May 10, 2018Updated on December 8, 2018

홈 서버의 공인 IP 주소에 도메인을 연결해두면 외부에서 홈 서버의 SSH, FTP, VPN 등에 접속할 때 숫자로 된 IP 주소 대신에 도메인을 입력할 수 있어서 편리하다. 다만 가정에 서비스되는 인터넷 회선은 대부분 유동 IP 주소 서비스이기 때문에 공인 IP 주소가 변경될 가능성이 있다. 그래서 IP 주소가 변경되면 변경된 IP 주소로 도메인을 다시 연결해주는 Dynamic DNS (DDNS) 서비스가 필요하다.

DDNS 서비스는 인터넷 공유기 자체에서도 대부분 지원하는 기능인데, 보통 인터넷 공유기 회사에서 제공하는 특정 형식의 도메인을 사용해야 한다. 그런데 이렇게 제공되는 trsh31도메인은 DNS 정보를 원하는대로 설정할 수 없어서 홈 서버를 여러 가지로 활용하는 데 불편이 따른다. 그래서 가능하면 자신만의 독립된 도메인을 확보하는 것이 좋다. 독립된 도메인에 DDNS를 적용하기 위해서는 적당한 서비스를 이용해야 하는데, DDNS만 별도로 다루는 서비스도 있고, 몇몇 도메인 등록 기관에서는 자신들에게 등록된 도메인에 DDNS 서비스를 무료로 제공하기도 한다. 대표적인 곳이 구글 도메인이다.

2018년 11월 30일 추가:
구글 도메인을 이용하는 본 방법은 도메인을 구글 도메인에서 구입하거나 기존 도메인을 구글 도메인으로 기관 이전해야하고, 또 구글 도메인은 kr 도메인을 서비스하지 않는 단점이 있다. 구글 도메인을 사용하지 않는다면 CloudFlare 등의 무료 DNS 서비스를 이용해서 DDNS를 적용할 수 있다. 자세한 방법은 21. Dynamic DNS: CloudFlare + ddclient 글을 참고한다.

구글 도메인 DDNS

구글 도메인에서 도메인을 구입하거나 기존의 도메인을 이곳으로 기관 이전하면 구글이 제공하는 DDNS 서비스를 무료로 사용할 수 있다. 3tdsgd구글 도메인의 도메인 등록/연장 비용은 현재 .com 도메인 기준 1년 $12로 평범한 수준인데, 해외 결제를 해야 하고, kr 도메인은 아직 서비스하지 않는다.

구글 도메인의 설정 페이지에서 DNS 구성 항목을 보면 위와 같이 동적 DNS 를 생성할 수 있다. 사용자 인증 정보 보기를 누르면 사용자 이름과 비밀번호가 나타나는데 이 내용을 가지고 홈 서버에서 ddclient 설정을 해주면 작업이 완료된다.

ddclient 설정

sudo apt-get update
sudo apt-get install ddclient

패키지 저장소 정보를 업데이트하고, ddclient를 설치한다. 설치 과정 중에 몇 가지를 hs3fh1입력하라고 물어오는데 설치 후에 다시 설정할 것이므로 첫 번째 항목에서 other를 선택하고 이후에는 계속 엔터키를 입력해서 설치를 마무리하면 된다.

sudo nano /etc/ddclient.conf

ddclient.conf 설정 파일을 nano 편집기로 열어서 내용을 삭제하고 아래와 같이 변경하는데, 설명을 참고해서 작성한다.

daemon=60
protocol=dyndns2
use=web
server=domains.google.com
ssl=yes
login=hgx8K3azKiSnCG, password='sXPh3mW5ejLCoS', example.com
login=adg5q4GErg3qX3, password='utDR536jr7wtKF', vpn.example.com

daemon=60  → ddclient가 홈 서버 컴퓨터의 IP 주소를 확인하는 주기 60초
protocol=dyndns2  → 구글 DDNS 설정 내용
use=web  → 구글 DDNS 설정 frtd내용
server=domains.google.com  → 구글 DDNS 설정 내용
ssl=yes  → 사용자 인증 정보를 SSL 암호화해서 전송
login=hgx8K3azKiSnCG  → 구글 DDNS 사용자 인증 정보의 사용자 이름
password='sXPh3mW5ejLCoS'  → 구글 DDNS 사용자 인증 정보의 t13j2y비밀번호, 양 끝에 ' ' 있음 주의
example.com  → DDNS를 적용할 도메인

앞서 구글 도메인 웹사이트에서 확인한 사용자 인증 정보 등을 입력하고, 비밀번호 양 끝에는 ' '가 들어가야 한다는 것을 유의하고, 자신의 도메인을 정확히 기록한다. 여러 개의 도메인에 적용할 때에는 위의 형식으로 한 줄씩 작성하면 된다. 작성을 마쳤으면 Ctrl키와 x키를 동시에 눌러서 nano 편집기를 빠져나오면서 저장한다.

sudo systemctl restart ddclient

편집한 설정 파일이 r1t3bd반영되도록 ddclient를 재실행한다.

sudo ddclient -force

도메인과 IP 주소를 처음으로 한 번 동기화해준다. 성공하면 다음과 같은 메시지가 출력된다.
SUCCESS: updating example.com: good: IP address set to 123.123.123.123

sudo ddclient -daemon=0 -debug -verbose -noquiet

이 명령으로 동기화된 ddclient btwy35r정보를 확인해볼 수 있다.

몇 분 후 구글 도메인의 설정 페이지에서 동적 DNS 항목을 살펴보면 IP 주소가 업데이트된 것을 확인할 수 있다.

 

본 글의 저작권은 작성자 Varins에게 있습니다.
Varins의 사전 서면 동의 없이는 본 글의 전부 또는 일부를 무단으로 전재, 게시, 배포하는 것을 금지합니다.

 

홈 서버 만들기 목차 
https://varins.com/category/server

01. 하드웨어 구성과 전기 요금
02. 우분투 서버 18.04 LTS 설치
03. 우분투 서버 18.04 LTS 기본 설정
04. 파일 복원: Btrfs 스냅샷
05. 네트워크 파일 공유: Samba (SMB)
06. Dynamic DNS: 구글 도메인 + ddclient
07. SSL/TLS 인증서: Let's Encrypt (Wildcard)
08. 웹 서버: Nginx, 서버 블록, https 보안연결
09. 웹사이트: php + MariaDB + WordPress
10. 서버 모니터링: Monitorix + Nginx Proxy
11. FTPS: vsftpd
12. VPN: IKEv2 (strongSwan)
13. Torrent: Transmission
14. 클라우드 스토리지: Nextcloud (Nginx, MariaDB)
15. 온라인 오피스: 온리오피스 (Docker, Nginx)
16. 트랜스코딩: Plex
17. VNC RDP 클라이언트: Guacamole (Docker, Nginx)
18. 가상 머신: QEMU-KVM + libvirt + virt-install
19. 시스템 업그레이드: i3 8300T, 970 EVO 전력 사용량
20. 서버 모니터링: netdata + Nginx Proxy
21. Dynamic DNS: CloudFlare + ddclient
22. SSL/TLS 인증서: Let's Encrypt + CloudFlare (Wildcard + 자동갱신)

Comments (4)

  • JK

    August 17, 2018 at 12:12 pm

    감사합니다

    1. Varins

      December 9, 2018 at 1:22 am

      고맙습니다.

  • hwJames

    August 26, 2018 at 12:06 am

    구글 도메인은 외국 주소로 해야되는데 해결 방안이 있을 까요?

    1. Varins

      December 9, 2018 at 1:21 am

      새로 작성한 글 21. Dynamic DNS: CloudFlare + ddclient를 참고해보세요.

Leave a comment

댓글은 관리자의 승인 이후에 게시됩니다.

Prev Post Next Post