TrueNAS DDNS(DDclient) 설치하기

DDNS

DDNS는 Dynamic DNS의 약자입니다. 동적 DNS라고도 불리며, DNS를 주기적으로 갱신하는 방법입니다. 일반적인 가정집에서 서버를 만들 때에는 DDNS가 꼭 필요한데, 이유는 아래와 같습니다.

일반적인 가정집에 할당되는 IP는 고정 IP가 아닌 동적 IP입니다. IP가 주기적으로 바뀐다는 소리이죠. 이 주기는 일반적으로 몇 달 간격이긴 하나, IP가 바뀔 때 마다 cloudflare에 접속하여 IP 주소를 바꿔야 한다는 점은 굉장히 귀찮지요. 더군다나 내부망에 접속할 수 없는 상황이라면 IP 주소를 알아낼 수도 없습니다.

이런 문제를 해결하기 위해 존재하는 것이 DDNS입니다. 이번에는 TrueNAS 서버에 DDNS를 설치해 보도록 하겠습니다.

 

Jail 만들기

  • 이름은 DDNS
  • Jail Type은 Basejail
  • Auto-start 활성화

으로 설정해 주시고, 네트워크 관련한 부분은 알아서 잘 설정해 주세요.

 

DDNS 설치하기

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
iocage console DDNS
iocage console DDNS
iocage console DDNS

DDNS jail에 접속해 줍니다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pkg update && pkg upgrade
pkg update && pkg upgrade
pkg update && pkg upgrade

pkg를 업데이트 해 줍니다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pkg install ddclient
pkg install ddclient
pkg install ddclient

DDclient를 설치해 줍니다. 지금은 3.9.1 버전이네요.

설치는 완료되었습니다. 이제 설정을 해보도록 하겠습니다.

 

DDclient 설정

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
vi /usr/local/etc/ddclient.conf
vi /usr/local/etc/ddclient.conf
vi /usr/local/etc/ddclient.conf

DDclient 설정 파일을 열어줍니다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
(.....)
daemon=300
syslog=yes
(.....)
pid=/var/run/ddclient.pid
ssl=no
(.....)
use=web, web=checkip.dyndns.org/, web-skip='IP Address'
(.....)
protocol=cloudflare,
zone=example.net,
ttl=1,
login=login@exmaple.net,
password=APIKey
example.net, www.example.net, blog.example.net
(.....)
(.....) daemon=300 syslog=yes (.....) pid=/var/run/ddclient.pid ssl=no (.....) use=web, web=checkip.dyndns.org/, web-skip='IP Address' (.....) protocol=cloudflare, zone=example.net, ttl=1, login=login@exmaple.net, password=APIKey example.net, www.example.net, blog.example.net (.....)
(.....)
daemon=300
syslog=yes
(.....)
pid=/var/run/ddclient.pid
ssl=no
(.....)
use=web, web=checkip.dyndns.org/, web-skip='IP Address'
(.....)
protocol=cloudflare,
zone=example.net,
ttl=1,
login=login@exmaple.net,
password=APIKey
example.net, www.example.net, blog.example.net
(.....)

위와 같이 설정 해 주세요. Cloudflare 설정 부분에서,

  • zone에는 사용할 도메인의 루트 도메인
  • login에는 cloudflare 로그인에 사용하는 이메일
  • password에는 cloudflare의 Global API Key
  • 도메인들을 밑부분에 써주시면 되는데, 콤마와 띄어쓰기로 도메인을 구분합니다.

설정을 완료했다면 저장하고 나가 주세요.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chmod 400 /usr/local/etc/ddclient.conf
chmod 400 /usr/local/etc/ddclient.conf
chmod 400 /usr/local/etc/ddclient.conf

보안을 위해서 root만 읽을 수 있도록 설정합니다.

 

DDclient 시작하기

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sysrc ddclient_enable="YES"
sysrc ddclient_enable="YES"
sysrc ddclient_enable="YES"

DDclient 서비스를 등록하고,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
service ddclient start
service ddclient start
service ddclient start

서비스를 시작해 줍니다.

 

DDclient 작동 확인하기

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ddclient -daemon=0 -debug -verbose -noquiet
ddclient -daemon=0 -debug -verbose -noquiet
ddclient -daemon=0 -debug -verbose -noquiet

DDclient 서비스를 디버깅 모드로 실행하는 코드입니다. 해당 코드를 입력하면 DDclient가 정상적으로 작동하는 지 확인할 수 있습니다. Failed 등의 문구가 뜬다면 설정이 잘못된 것이니 제대로 설정하였는지 확인해 주세요.

 

마치면서

DDNS 설정이 완료되었으니 이제 여러분의 도메인은 항상 서버를 가르키게 됩니다. 따라서 외부에서도 항상 접속할 수 있는 상황이 되지요.

다음에는 VPN을 구축해 보도록 하겠습니다.

답글 남기기