애석하게도 5월 19일에 D-Link DDNS 서비스가
종료
되었습니다.
라즈베리파이에 라즈비안을 올리고 VPN 서버 및 간단한 빌드용으로 사용하고 있었기에 눈물이 앞을 가렸습니다.
적당히 검색을 해보니 No-IP(https://www.noip.com/)에서 무료 DDNS 및 DNS 서비스를 제공하더라구요. DNS 및 DDNS를 제한적으로나마 무료로 사용할 수 있어서 이 서비스를 선택하였습니다. 생성되는 DNS 주소도 짧게 설정할 수 있어서 마음에 들었습니다.
아래는 라즈베리파이에 no-ip DNS 및 DDNS를 설정하는 방법입니다.
1. no-ip 홈페이지에 접속합니다. (https://www.noip.com/)
2. 우측 상단의 Sign Up
을 클릭해서 회원가입을 진행합니다.
3. 이메일과 비밀번호를 입력하고 Create my hostname later
를 체크한 후 하단의 Free Sign Up
을 클릭하여 회원 가입 및 인증 메일 발송을 기다립니다.
- 아래의 Email Opt-In 항목을 체크 해제하면 광고성 메일을 막을 수 있습니다!
- 이메일 인증은 이런 형태의 메일을 수신하게 됩니다.
4. 이메일 인증 후 no-ip 홈페이지의 우측 최상단의 Log In
으로 로그인을 해줍시다.
5. 인증 메일을 클릭하면 자동으로 로그인이 됩니다. 대시보드는 로그인 이후 홈페이지 상단에 my account
로 다시 들어올 수 있습니다.
6. 대시보드에 진입한 뒤 부가 정보 및 2차 비밀번호 질문을 설정합니다. 적당히 기입해주시기 바랍니다.
- 이 메뉴는 좌측의 Account
> Account Info
를 통해 들어올 수 있습니다.
7. 이제 DNS 설정을 시작합니다.
- Dynamic DNS
> No-IP Hostnames
로 진입한 뒤 Create Hostname
을 클릭합니다.
8. 사용할 Hostname과 Domain을 선택합니다.
Domain은 무료와 유료가 있으니 선택을 하면 됩니다. 아래의 IPv4 Address
는 현재 접속중인 컴퓨터의 IPv4 정보이며 추후 DDNS 클라이언트가 설정이 되면 해당 IP로 변경이 됩니다.
- 지금 변경하지 않아도 상관은 없으나 테스트를 위해 현재 라즈베리파이의 외부 IP를 입력하고 SSH 접속 테스트를 해봅니다.
> ssh [계정]@iroiro.ddnsking.com
9. Create Hostname으로 생성이 완료 되면 아래와 같이 DNS가 생성됩니다.
10. 이제 클라이언트에서 DDNS 설정을 완료합니다.
주기적으로 서버에 IP를 업데이트를 해줄 수 있습니다. 클라이언트는 윈도우, Mac, Linux를 지원합니다.
해당 메뉴는 대시보드 좌측 메뉴에서 Dynamic DNS
> Dynamic Update Client
에서 확인할 수 있습니다. 동영상 설명까지 되어 있으니 잘 따라할 수 있을겁니다.
11. Dynamic update client 설치/실행
저는 라즈비안를 사용할 예정이므로 다음 링크(https://www.noip.com/support/knowledgebase/install-ip-duc-onto-raspberry-pi/)를 참고하여 진행하였습니다.
- 클라이언트 설치
$ mkdir /home/pi/noip
$ cd /home/pi/noip
$ wget www.noip.com/client/linux/noip-duc-linux.tar.gz
$ tar noip-duc-linux.tar.gz
$ cd noip-2.1.9-1
$ sudo make
$ sudo make install
이후에 no-ip 계정의 이메일과 비밀번호, DNS 이름, 갱신 주기(5분 이상)를 설정해줍니다.
- 클라이언트 실행
$ sudo /usr/local/bin/noip2
클라이언트 실행 직후 no-ip 대시보드를 확인해보면 클라이언트의 외부 IP로 변경된 것을 확인할 수 있습니다.
- 클라이언트 실행 확인
$ sudo noip2 -S
- 도움말은 다음 명령어로 확인합니다.
$ sudo noip2 -h
12. 부팅 시에 자동으로 no-ip를 실행할 수 있도록 설정합시다.
(참고:https://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html)
$ sudo nano /etc/init.d/no-ip
nano 에디터에서 다음을 작성하고 저장합니다. (저장은 Ctrl+O, nano 에디터 종료는 Ctrl+X)
#! /bin/sh
# /etc/init.d/no-ip
### BEGIN INIT INFO
# Provides: no-ip
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start noip2 at booting time
# Description: please use it with [start | stop] options.
### END INIT INFO
case "$1" in
start)
echo "Starting no-ip"
/usr/local/bin/noip2
;;
stop)
echo "Stopping no-ip"
killall noip2
;;
*)
echo "Usage: /etc/init.d/no-ip [start|stop]"
exit 1
;;
esac
exit 0
스크립트가 잘 되는지 테스트 합니다.
- 시작
$ sudo /etc/init.d/no-ip start
Starting no-ip
- 동작 프로세스 확인
$ sudo noip2 -S
1 noip2 process active.
Process 275, started as noip2, (version 2.1.9)
- 종료
$ sudo /etc/init.d/no-ip stop
Stopping no-ip
- 동작 프로세스 확인
$ sudo noip2 -S
No noip2 processes active.
위의 과정이 정상적으로 확인되었다면 이 스크립트를 부팅 시에 동작하도록 다음 명령어로 등록해줍니다.
$ sudo update-rc.d no-ip defaults
$ ls /etc/rc*.d | grep no-ip
K01no-ip
K01no-ip
S01no-ip
S01no-ip
S01no-ip
S01no-ip
K01no-ip
이제 재부팅이 되어도 해당 서비스를 실행됩니다.
나중에 필요없게 된 경우에는 다음 명령어로 제거해줍니다.
$ sudo update-rc.d -f no-ip remove
끝~!
'소프트웨어 > 일반' 카테고리의 다른 글
[VS Code] 확장 프로그램 리스트 백업 및 복구 (2) | 2020.08.13 |
---|---|
[VS Code] java 11 or more recent is required to run 에러 해결 (3) | 2020.07.24 |
[Git] CMD로 git 사용 시 한글 깨짐 현상 해결 (0) | 2020.06.17 |
[IntelliJ] 한글 깨짐 현상 수정 (1) | 2020.05.29 |
[MySQL Workbench] error code : 1412 (0) | 2020.05.13 |