사건의 시작
일반적으로 가정집에서 Public IP까지는 받을 수 있지만 이 친구는 Static하지는 않습니다. (물론..거의 IP가 바뀌진 않지만 아주 가끔 바뀌는 경우가 있습니다) 이를 해결하기 위해서 DDNS를 많이들 셋팅하시는데, 보통 no-ip를 가입해서 공유기에 셋팅하거나 iptime 공유기에서 제공하는 iptime 도메인을 쓰는 방법을 사용합니다. 또 no-ip는 30일마다 이메일로 기간 연장을 해야합니다.
저는 이 두가지 모두 마음에 들지 않아서 제 공유기 밑에 있는 개인 서버에서 DDNS를 구축하는 방법을 찾아봤는데, 클라우드 플레어에서 제공하는 문서에서 언급된 ddclient를 살펴봤고 괜찮아보여서 구축해봤습니다.
과정
사실 크게 신경써야할 과정이 있지는 않습니다. https://github.com/ddclient/ddclient 에 가서 직접 소스코드를 받아서 빌드하거나 패키지매니저로 install하면 됩니다. 꽤 많은 패키지매니저에서 제공되고 있어서 쉽게 설치할 수 있었습니다.
- 저같은 경우에 Debian을 사용하고 있어서
sudo apt install ddclient
를 해줬습니다. - 설치과정중에, config 셋팅하는 과정이 뜨는데, 이 과정에서 자신이 사용하고 있는 DNS provider를 골라서 (목록에서 보이지 않는다면 Others를 고르면 됩니다) 계정 identifier와 password 혹은 api키를 적어주면 됩니다.
- 그다음은 본인의 IP를 어떻게 확인할 것인지를 선택해야 하는데, 저처럼 서버가 직접 Public IP를 가지는 것이 아니라 서버는 공유기 아래에서 Private IP를 가지고 있기 때문에 웹기반을 선택해주면 됩니다.
- 여기까지 하면 설치는 끝나고 systemd service까지 켜져있는 상태일 겁니다. 여기서
sudo systemctl status ddclient.service
했을 때 warning 없이 잘 뜨면 문제가 없지만 저 같은 경우 config에서zone=
부분이 빠져있어서 warning이 뜨고 있었습니다. (관련이슈) 그래서/etc/ddclient.conf
를 직접 열어서 zone을 추가해주었습니다. - 마지막으로 재부팅되어도 자동으로 켜지도록
sudo systemctl enable ddclient.service
를 해주었습니다.