ddclient로 DDNS (동적 IP) 설정하기
0. 개요
프리티어인 AWS EC2 서버를 재시작 할 때마다 IP가 변동되어 매번 설정 및 SSH 접속을 다시 해주어야 하는 불편함이 있었다.
1. 개념
(1) DDNS (Dynamic DNS)
- 동적 IP 주소를 사용하는 네트워크 장치가 IP 주소 변경되면 자동으로 업데이트 하여 도메인을 최신 IP 주소로 매핑할 수 있게 해주는 서비스
- DNS 와의 차이점
DNS | DDNS | |
IP 주소 변경 여부 | 고정 IP 사용 도메인이름과 고정된 IP 주소의 매핑 제공 |
동적 IP 지원 IP 주소 변경될때마다 자동으로 DNS 서버에 업데이트 |
사용 | 주로 웹사이트 등 고정 IP 주소 사용하는 서버, 서비스에 사용 | 가정용 네트워크 등 고정 IP 주소가 없는 환경에서 사용 |
적용 방법 | 도메인이름-IP주소 매핑 정보 수동으로 설정 자주 변경되지 않음 |
클라이언트 소프트웨어 (ddclient 등) 가 주기적으로 자동 업데이트 |
- 동작 원리
STEP 1 | 클라이언트 설정 | DDNS 서비스 제공 업체(dynv6 등) 가입 후 DDNS 클라이언트 설치 |
STEP 2 | IP 주소 변경 감지 | 주기적으로 현재 공용 IP 주소 확인 |
STEP 3 | IP 주소 업데이트 | IP 주소 변경되면 새로운 IP 주소를 DDNS 제공업체 서버에 전송하여 매핑 업데이트 |
STEP 4 | 접근 유지 | 사용자는 항상 최신 IP 주소로 장치 접근 가능 |
(2) ddclient
- DDNS 서비스 제공업체 (dynv6 등) 와 호환되는 오픈소스 DDNS 클라이언트. 주기적으로 현재(최신)IP 주소 확인하고 변경 사항을 DDNS 제공업체 서버에 업데이트 시킴
2. 설정 방법
** 준비물 : Ubuntu 서버, DDNS 서비스 제공업체 계정 (예시의 경우 dynv6 사용)
(1) dynv6 가입
dynv6
dynv6.com
회원가입 후 작성한 메일 확인하기.
스팸메일에 들어가있어서 연동에 시간이 좀 걸렸다..
가입 후 My Zones 에서 + Create new Zone 버튼 클릭
설정할 아이피 이름과 서버의 IP 주소 작성 후 Create Zone 클릭하면
My Zones 에 추가한 도메인과 ddclient 설정값이 뜬다.
서버에서 입력해야하니 해당 페이지 켜놓은 상태로 진행
(2) ddclient 라이브러리 설치
Ubuntu 서버 접속 후 라이브러리 설치하기
sudo apt-get install ddclient libjson-any-perl libdata-validate-ip-perl
설치 후 계속하기 Y 입력하면
해당 창이 뜬다 (MobaXTerm 사용)
other 선택
other 선택
protocol 입력하는 칸이 나오는데,
아까 가입해두었던 dynv6 에서 켜 둔 ddclient 설정 내용에서
protocol에 해당되는 내용 입력
DNS server도 입력
username 입력
지금 보니 login=none이라고 되어있어서 none을 입력한거였는데 ID 지정하는 것 같다..
나와있는 Password 값 입력
Ok 눌러주면
Web-based IP discovery service 선택
마지막으로 발급받은 도메인 이름(My Zones) 입력하면
ddclient 라이브러리가 설치된다.
(3) ddclient 최신 버전 다운로드
wget https://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.9.0/ddclient-3.9.0.tar.gz
tar -xvf ddclient-3.9.0.tar.gz
설치된 파일 압축 해제
sudo cp -f ./ddclient-3.9.0/ddclient /usr/sbin/ddclient
ddclient 프로그램 기존에 설치된 곳에 파일 복사하기
최신버전 다운받느라 설정 파일 위치가 변동되었기 때문에 기존 위치로 복사해주어야 한다.
(4) ddclient 설정 파일 수정
# 디렉토리 생성
sudo mkdir /etc/ddclient
# ddclient.conf 설정 파일 수정하기
sudo nano /etc/ddclient.conf
ddclient.conf 파일에 ddclient 설정 내용 붙여넣기
protocol=dyndns2
server=dynv6.com
login=none
password='1234'
projectName.dynv6.net
ssl=yes
ssl=yes
도 추가해주었다
입력 후 Ctrl +O ▶ 엔터 ▶ Ctrl+X 로 저장 후 닫기
(5) ddclient 실행
# 서비스 시작
sudo systemctl start ddclient
# 서비스 상태 확인
sudo systemctl status ddclient
# 실행
sudo ddclient -daemon=0 -debug -verbose -noquiet
적용에는 시간이 꽤나 걸렸었다 (다음 날 시도 했었다)
적용되었는지 확인하려면 ping 찍어보기
ping projectName.dynv6.net
* 적용 되었다면 뜨는 내용
PING projectName.dynv6.net (1.23.45.678) bytes of data
* 적용 안되었다면 뜨는 내용
ping: projectName.dynv6.net : Name or service not known
3. 적용 완료
(1) dynv6 도메인 SSH 접속
host에 IP 대신 projectName.dynv6.net:포트번호 써주기
IP였으면 변동 되었을 때 다시 바꿔주어야했지만 ddclient 적용했으므로 이제 바꿔줄 필요가 없다!
(2) dynv6 도메인 웹사이트 접속
기존에는 http://IP:포트번호 로 접속했었지만 (지금도 접속 가능하긴 함)
projectName.dynv6.net:포트번호 로도 접속 가능하기 때문에 IP 변경해줄 필요 X
(3) DB 접속
디비버 기준, server Host에 IP 입력하지 않고 projectName.dynv6.net 입력
DB도 연결 완료!
+ spring boot 프로젝트 application.properties에서도 적용 가능하다
spring.datasource.url=jdbc:log4jdbc:mysql://projectName.dynv6.net:3306/databaseName
server.port = 8080
'CODING > 🐧Linux' 카테고리의 다른 글
[CentOS] 터미널 열고 닫기, 단축키 지정하기 (1) | 2024.01.08 |
---|---|
[Linux] 가상머신 VMware 설치 및 환경설정하기 (0) | 2023.11.24 |