앞서 시놀로지에서 클라우드플레어 API를 이용한 DDNS 설정을 작성했습니다.
2021.10.01 - [Synology] 시놀로지에서 클라우드플레어 DDNS 설정하고 와일드카드 인증서 받기 #1
이번엔 도커를 이용해 간단하게 DDNS를 이용해 봅니다.
시놀로지 뿐 아니라 도커가 사용 가능한 모든 장치에서 가능한 방법이라, 활용도가 높을 것 같네요. (특히 저처럼 초보자들..)
위 글에 클플 API Key를 받는 방법이 기술되어 있어, 간단하게 작성합니다.
도커가 설치된 환경에서 ssh로 접속하여 아래 명령을 넣으면 끝입니다.
docker run -d --name=cloudflare-ddns --restart=always \
-e API_KEY=[클라우드플레어 API Key] \
-e ZONE=[도메인] \
-e SUBDOMAIN=[DDNS를 적용할 서브도메인. 없는경우 루트 도메인을 갱신함] \
oznu/cloudflare-ddns
별 내용은 없지만, 자세한 설정이나 내용은 아래를 참고해주세요.
https://hub.docker.com/r/oznu/cloudflare-ddns/
환경 변수의 간단한 설명은 아래와 같습니다.
PROXIED - CloudFlare CDN을 사용하는 경우 true로 설정. 기본값은 false
DELETE_ON_STOP - 컨테이너가 정지되면 dns레코드를 삭제하도록 설정, 기본값은 false
INTERFACE - 네트워크 인터페이스를 지정해줍니다. 기본값은 공개IP
DNS_SERVER - DNS 서버를 설정합니다. 기본값은 1.1.1.1
CRON - 사용자 정의 CRON값, 즉 어느 주기로 실행할지 설정합니다. 기본값은 5분( */5 * * * *)
사용하는 컨테이너가 많다면 docker-compose를 사용하여 정리하면 좀더 편하겠죠?
docker-compose.yml 파일을 만들어줍니다.
version: '3'
services:
cf-ddns:
image: oznu/cloudflare-ddns:latest
restart: always
environment:
API_KEY: api_token
ZONE: example.com
SUBDOMAIN: subdomain
루트 도메인을 사용하려면, subdomain을 지우거나 주석(#)처리 하시면 됩니다.
API Token을 여기에 그냥 노출하면 좀 불안하죠? .env 파일을 만들어서 숨겨봅시다.
docker-compose.yml 파일과 같은 경로에 .env파일을 만들고
API_KEY=[api_key]
내용을 넣고, docker-compose.yml 파일을 수정합니다.
version: '3'
services:
cf-ddns:
image: oznu/cloudflare-ddns:latest
restart: always
environment:
API_KEY: ${API_KEY}
ZONE: example.com
SUBDOMAIN: subdomain
만약, 도메인이 여러개라면?
여러개 만들면 됩니다. 아쉽게도 다중 도메인에 대한 지원은 하지 않나봐요.
version: '3'
services:
cf-ddns1:
image: oznu/cloudflare-ddns:latest
restart: always
environment:
API_KEY: ${API_KEY}
ZONE: example1.com
SUBDOMAIN: subdomain
cf-ddns2:
image: oznu/cloudflare-ddns:latest
restart: always
environment:
API_KEY: ${API_KEY}
ZONE: example2.com
SUBDOMAIN: subdomain
- 도메인마다 API_KEY가 다르다면? API_KEY도 뒤에 1, 2, 3... 붙여서 바꿔주면 됩니다.
container name을 설정해도 됩니다만, 이거같은 경우엔 한번 실행하곤 끝이라서 특별하게 뭘 건들 필요는 없어보입니다.
기본적으로 5분마다 갱신을 합니다.
'취미, 관심 > NAS, Server' 카테고리의 다른 글
[Apache] 아파치 .htaccess에서 www 붙이기, 제거하기(rewrite, redirect) (0) | 2022.04.07 |
---|---|
[docker] docker-compose IP 고정시키기 (0) | 2022.03.30 |
[Synology] 시놀로지 나스에 Portainer 설치 및 업데이트 (0) | 2022.03.10 |
[Synology] 시놀로지 드라이브 사용 중 바이러스 Trojan:Win32/Zpevdo.B 검출 경고가 뜨는 경우 (0) | 2022.02.21 |
[PHP] phpMyAdmin 설치시 Composer~ be installed: xml 문구 해결 (0) | 2022.01.20 |
사이트에 강제로 www 넣기/빼기 (0) | 2022.01.18 |
국내 통신사별 리버스 도메인(PTR레코드) 등록방법 (0) | 2022.01.18 |