오드로이드 개인서버 구축 #6 공유기 DDNS로 고정 IP 대신 사용하기

Explanation

전에도 적었었는데, 인터넷 공유기는 고정 IP는 아니지만 공유기를 재시작하지 않으면 IP가 바뀌지 않아서 고정 IP처럼 사용할 수 있다고 했었는데요. 두달 정도 쓰다보니, 맙소사.. 집에 공유기의 인터넷이 안되는게 아닌지 몹니까…
저는 어쩔 수 없이, 가장 단순하지만 확실한 방법인!! 공유기를 재시작하고… 다시 새로 바뀐 IP로 DNS 설정을 다시 해줘야 했습니다. 이건 안되겠다 싶어 한번 그 대안을 찾아보았습니다.

1. DDNS

DDNS, Dynamic Domain Name System의 약자에요 동적 도메인 이름 시스템? 간단하게, 변하는 아이피를 동적으로 도메인의 아이피로 업데이트 해주는 시스템입니다. 우선 브라우저를 열고 ‘http://192.168.0.1/’ 공유기 설정 페이지로 이동합니다.

관리자로 로그인 한 후 이어서 ‘고급설정’ -> ‘특수 기능’ -> ‘DDNS’ 란으로 이동합니다.

2. DDNS 설정하기

호스트 이름에 원하시는 이름, 아이디에 E-mail을 작성하시고 아래의 보안 문자를 입력한 후 ‘추가’ 버튼을 누르면 끝입니다. 저는 cheolguso라는 이름으로 등록하였습니다. 그러면 이제 내부 IP가 바뀌더라도 등록한 도메인으로는 항상 접근이 가능해집니다.

3. DNS 설정하기

이제 구매한 도메인을 DDNS에 추가한 호스트로 연결을 해줘야 하는데요, 대부분 도메인을 구입한 사이트에서 ‘네임서버 설정’ 또는 ‘서브도메인 설정’ 이런 비슷한 이름으로 설정할 수 있는 UI를 제공합니다. 저는 주로 도메인을 hosting.kr에서 구매하는데요. hosting.kr의 경우 아래와 같은 설정을 제공합니다.

깔끔하게 루트 도메인과 같이 많이 사용하는 www 서브 도메인에 DDNS 설정으로 발급받은 호스트 주소를 연결해주면 참 좋겠지만. 기본적으로 레코드 타입 A는 IP로만 등록할 수 있어서 루트 도메인에는 연결할 수가 없습니다. (검색해보니까 몇몇 사이트는 루트 도메인도 레코드 타입 CNAME을 설정할 수 있도록 제공하는 곳도 있다고 합니다.)
그래서 생각한 방법은 www 서브도메인을 기본 도메인으로 사용하고 루트 도메인은 무료 호스팅 업체에 연결해서 서브 도메인(www)으로 리다이렉트 시키면 되겠다 생각을 하였는데, 몇 군데 찾아본 결과 호스팅 서비스 중에 무료 계정으로 개인 도메인을 연결할 수 있는 사이트를 찾지 못했습니다. 그나마 Firebase의 Hosting 서비스를 이용하면 무료로 이용할 수 있는 할당량이 많아서(더욱이 단순히 리다이렉트만 시키면 되기 때문에) 구현은 가능할 것 같습니다.

하지만, 위처럼 설정시 동작은 하더라도 루트 도메인으로 접근 시 호스팅 서버로 갔다가 클라이언트를 출력하고 스크립트로 리다이렉트를 실행하고 그리고 개인 서버로 오게 됩니다. 이 과정은 분명히 좀.. 별로인 거 같습니다. (참고로 Firebase의 Hosting 서비스에서 리버스 프락시 같은 설정을 따로 할 수 있는지는 잘 모르겠습니다.)

여하튼, 저는 개인적으로 위 방법은 너무 마음에 들지 않고, 유튜브 채널도 시작했고, 뭔가 아이덴티티를 맞추면 좋을 거 같아서 과감히 철구소를 버리고 제가 주로 사용하는 닉네임, 유튜브 채널과 통일하여 FALSY LAB으로 서비스 이름을 변경하고 URL은 기존에 사용하던 falsy.me의 서브 도메인으로 lab.falsy.me에 DDNS로 설정한 호스트 연결하여 사용하고 있습니다.

다른 더 좋은 방법을 알게 되거나 생각나면 다시 포스팅하도록 하겠습니다!
혹시 더 좋은 방법을 알고 계신다면 댓글로 살짝 귀뜸해 주시면 감사할 것 같습니다 :)