Synology DDNS에서 DNSEver 사용하는 2가지 방법 (사용자 DDNS 업체 사용하기)

무료 클라우드 서비스가 많이 있다.
일반적으로 사용하기에 충분한 용량를 제공하고 편리한 어플리케이션도 제공하고 있다.
그러나 개인적인 파일을 외부에 올리고 싶지 않고 HDD에 저장해서 보관하자니 클라우드 서비스 처럼 편하게 보고 싶었다.
그래서 NAS를 구매하게 되었는데, Synology DS214play를 사용하고 있다.

그런데 DDNS 설정에서 "서비스 제공업체" 목록에 사용하고 있는 업체가 없었다.
해결 방법이 있어서 공유한다.

DNSEver.com를기준으로 2가지 방법을 제안한다.

첫번째 방법:: 외부 액세스 > DDNS 기본 기능 사용하기

UI에서 선택 가능하도록 vi /etc.defaults/ddns_provider.conf 실행 후 맨 하단에 아래 내용을 추가한다.

[DNSEver]
        modulepath=/sbin/ddns_dnsever.sh
        queryurl=kr.dnsever.com

그리고 IP변경 사항을 적용하기 위해 vi /sbin/ddns_dnsever.sh 실행 후 아래 내용을 추가한다.

#!/bin/sh

# DNSEver Update
eval set -- "$@"
wget=$(wget -O - --http-user=$1 --http-passwd=$2 http://dyna.dnsever.com/update.php?host[$3]=$4)

# DNSEver Update Status
result=$(echo $wget | sed -n 's/.*host.*code=\"\([^\"]\+\).*/\1/p')
if [ $result == "" ]
    then
    result=$(echo $wget | sed -n 's/.*code=\"\([^\"]\+\).*/\1/p')
fi

# Synology Status
# 응답 코드 정보: https://support.dnsever.com/hc/ko/articles/219666247-%EB%8B%A4%EC%9D%B4%EB%82%98%EB%AF%B9-DNS-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
case $result in
    700|701|720)
        echo "good";;
    721)
        echo "nochg";;
    201)
        echo "nohost";;
    320)
        echo "abuse";;
    202|301|304)
        echo "notfqdn";;
    101|102|103|104)
        echo "badauth";;
    203)
        echo "911";;
    302|303|305)
        echo "badagent";;
esac

이제 DSM > 제어판 > 외부 액세스 > DDNS > 추가 접속하면 "서비스 제공업체"에 확인 가능하다.

두번째 방법 :: 작업 스케줄러 사용하기

1. File Station > 생성 > 새 공유 폴더 생성 에서 script 이름으로 생성
2. 메인 메뉴 > 텍스트 편집기 > 파일 > 새로 만들기 후 아래 내용 입력
#!/bin/sh

# DNSEver Update
/usr/bin/wget -O - --http-user=아이디 --http-passwd=인증코드 http://dyna.dnsever.com/update.php?host[도메인]=아이피 > /volume1/script/ddns_dnsever.log

그리고 1번에서 생성한 script디렉토리에 ddns_dnsever.sh 파일 이름으로 저장한다.
3. DSM > 제어판 > 작업 스케줄러 > 생성 > 사용자 정의 스크립트의 일반 탭에서 아래 항목을 입력한다.
작업: DDNS
사용자 정의 스크립트: /volume1/script/ddns_dnsever.sh
스케줄 탭에서 실행 주기를 설정한다.

이제 모든 설정이 끝났다. 지정한 시간에 실행 결과는 script 디렉토리의 ddns_dnsever.log 파일을 확인하면 된다.


2가지 방법을 모두 소개했는데, 본인에게 편한 방법을 사용하면 된다.
첫번째 방법은 DSM에서 제공하는 기능을 이용하여 자체 로그가 기록되는 장점이 있지만 DSM 업데이트 시 해당 파일이 변경될 경우 다시 이 작업을 해줘야 하는 단점이 있다.
두번째 방법은 SSH 접속하지 않고 DSM에서 적용 가능하며 업데이트에 영향을 받지 않는 장점이 있지만 로그 관리는 직접해줘야 하는 단점이 있다.