ddns 서버 자체 구축하기

 

사건의 시작

일반적으로 가정집에서 Public IP까지는 받을 수 있지만 이 친구는 Static하지는 않습니다. (물론..거의 IP가 바뀌진 않지만 아주 가끔 바뀌는 경우가 있습니다) 이를 해결하기 위해서 DDNS를 많이들 셋팅하시는데, 보통 no-ip를 가입해서 공유기에 셋팅하거나 iptime 공유기에서 제공하는 iptime 도메인을 쓰는 방법을 사용합니다. 또 no-ip는 30일마다 이메일로 기간 연장을 해야합니다.

저는 이 두가지 모두 마음에 들지 않아서 제 공유기 밑에 있는 개인 서버에서 DDNS를 구축하는 방법을 찾아봤는데, 클라우드 플레어에서 제공하는 문서에서 언급된 ddclient를 살펴봤고 괜찮아보여서 구축해봤습니다.

과정

사실 크게 신경써야할 과정이 있지는 않습니다. https://github.com/ddclient/ddclient 에 가서 직접 소스코드를 받아서 빌드하거나 패키지매니저로 install하면 됩니다. 꽤 많은 패키지매니저에서 제공되고 있어서 쉽게 설치할 수 있었습니다.

  1. 저같은 경우에 Debian을 사용하고 있어서 sudo apt install ddclient 를 해줬습니다.
  2. 설치과정중에, config 셋팅하는 과정이 뜨는데, 이 과정에서 자신이 사용하고 있는 DNS provider를 골라서 (목록에서 보이지 않는다면 Others를 고르면 됩니다) 계정 identifier와 password 혹은 api키를 적어주면 됩니다.
  3. 그다음은 본인의 IP를 어떻게 확인할 것인지를 선택해야 하는데, 저처럼 서버가 직접 Public IP를 가지는 것이 아니라 서버는 공유기 아래에서 Private IP를 가지고 있기 때문에 웹기반을 선택해주면 됩니다.
  4. 여기까지 하면 설치는 끝나고 systemd service까지 켜져있는 상태일 겁니다. 여기서 sudo systemctl status ddclient.service 했을 때 warning 없이 잘 뜨면 문제가 없지만 저 같은 경우 config에서 zone= 부분이 빠져있어서 warning이 뜨고 있었습니다. (관련이슈) 그래서 /etc/ddclient.conf를 직접 열어서 zone을 추가해주었습니다.
  5. 마지막으로 재부팅되어도 자동으로 켜지도록 sudo systemctl enable ddclient.service 를 해주었습니다.
configuring provider configuring IP discovery