• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

Docker로 cloudflare-ddns 적용하기

ExpBox ExpBox 1377

1

6

안녕하세요 Expbox입니다.

 

최근 오라클 클라우드를 사용하는 중 SSH 접속을 위해 ip주소를 입력하는게 너무 귀찮더라구요. 그래서 저는 DNS 서비스로 클라우드 플레어를 쓰다보니 직접 ip 주소를 입력하는 A 네임으로 서브도메인을 잡아줬습니다. 그럴 일은 없겠지만.. 혹시나 ip 주소가 바뀌는 불상사가 있을 수 있는데 이럴 때마다 오라클 클라우드로 접속해서 ip주소를 확인하고 클라우드 플레어에 접속해서 바꾸는건 상당히 귀찮은 일입니다. 그래서 cloudflared를 사용하려고 세팅해봤는데 생각보다 어렵더라구요.

 

https://svrforum.com/svr/246383

라즈베리파이 4B 8gb 하나 사서 설정하고 있습니다.  USB3.0 SSD외장하드에 운영체제는 Ubuntu 20.04LTS 64bit 올렸습니다.   왠지 32bit보단 ...
Intuit | 2022.04.11

그러다 보인 글이 저 위의 글입니다. 따로 설치하고 뭐고 할 필요없이 도커로 바로 올릴 수 있는 이미지가 존재했던 것입니다!  그래서 저도 도커 허브에서 사용법 확인하고 바로 적용했습니다. 의외로 사용 방법은 상당히 간단합니다.

 


 

도커 허브 주소:

https://hub.docker.com/r/oznu/cloudflare-ddns/

 

필요한 것은 클라우드 플레어에 등록되어있는 도메인, DNS 전용 API Token 입니다.

 

도메인은 따로 구매하셔야하며 클라우드 플레어에서 구매할 수도 있지만 AWS Route53, Namecheap 등에서 구매하거나 무료로 얻을 수도 있는 서비스를 사용하여 도메인을 구하셔도 됩니다.

 

대부분의 API 키는 Global API를 의미하는 것이지만 이 도커 이미지에서는 DNS 전용 API Token을 사용하라고 하네요. 저 또한 Global API는 보안 문제로 인해 권장드리지 않습니다. 발급 방법은 아래 링크글의 Part2에 잘 설명되어있습니다.

https://svrforum.com/os/229775

안녕하세요 Expbox입니다. OPNsense에 Let´s Encrypt 와일드카드를 적용하여 HAProxy로 리버스 프록시 설정하는 가이드를 쓰던 중 너무 길어지는데다 정보가 ...
ExpBox | 2022.04.03

 

이 이미지는 다른 이미지와는 다르게 포트를 열 필요가 없습니다. 인터넷을 통해서 등록하는 형식이라 그런 것 같습니다. 또한 이 이미지는 멀티 아키텍처를 지원하기에 거의 모든 서버에서 구동이 가능합니다. 다만 가능한 이미지인지 태그를 통해서 확인하고 설치하는 것을 권장드립니다. 

 

CLI로 바로 실행하기

 

docker run \
  --name=cloudflare-ddns \
  --restart=always \
  -e API_KEY=xxxxxxx \
  -e ZONE=example.com \
  -e SUBDOMAIN=subdomain \
  oznu/cloudflare-ddns

 

API_KEY= 다음에는 위에서 발급받은 DNS 전용 API Token을 입력하시면 됩니다.

ZONE= 다음에는 구입/발급한 도메인입니다.

SUBDOMAIN= 다음에는 사용할 서브도메인을 입력하시면 됩니다.(subdomain.example.com으로 적는것은 권장하지 않습니다.) 또한 도메인 그 자체(example.com)를 사용하고 싶으시다면 삭제하셔도 됩니다.

혹시나 클라우드플레어의 DNS 서비스를 받으시고자 한다면 중간에 -e PROXIED=true 를 추가로 입력하시면 됩니다.

이미지는 oznu/cloudflare-ddns으로 바로 입력하면 자동으로 latest로 잡아서 사용하는 서버의 아키텍처에 따라 알아서 이미지를 받아줍니다. (저는 오라클 클라우드 ARM 인스턴스에 올려서 oznu/cloudflare-ddns:aarch64 로 입력합니다.)

 

Docker-Compose 사용하기

 

요새 사용하는데 맛들린 도커 컴포즈로 실행하는 방법입니다. 이미지 문서에서는 버전 2였지만 저는 버전 3을 사용합니다. 그런데 달라지는건 없어요.

 

version: '3'
services:
  cloudflare-ddns:
    image: oznu/cloudflare-ddns:latest
    restart: always
    environment:
      - API_KEY=xxxxxxx
      - ZONE=example.com
      - SUBDOMAIN=subdomain
      - PROXIED=false                  # 만약 DNS서비스가 필요하다면 true로 바꿔주세요.

 

API_KEY= 다음에는 위에서 발급받은 DNS 전용 API Token을 입력하시면 됩니다.

ZONE= 다음에는 구입/발급한 도메인입니다.

SUBDOMAIN= 다음에는 사용할 서브도메인을 입력하시면 됩니다.(subdomain.example.com으로 적는것은 권장하지 않습니다.) 또한 도메인 그 자체(example.com)를 사용하고 싶으시다면 삭제하셔도 됩니다.

 

Docker-Compose 실행

 

docker-compose up -d

 

도커가 정상적으로 실행된 후 클라우드 플레어 대시보드에서 확인해보면 정상적으로 A 네임으로 서브도메인이 등록되어있는 것을 확인할 수 있습니다.

 


 

docker-compose로 실행 시 약간의 팁을 드리자면 API Token/비밀번호는 중요하기 때문에 따로 관리하는 방법 간단하게 소개합니다.

 

image.png.jpgdocker-compose.yml 파일에서 API_KEY=${사용하고싶은변수명}으로 입력 후 저장합니다. 저는 변수명을 CF_API_KEY로 정했습니다.

 

image.png.jpg

vi .env 로 .env 파일 생성 후 사용하고싶은변수명=api_key 입력 후 저장합니다. rg는 제 실제 API Token 입니다.(일부 문자 가림)

 

image.png.jpg

docker-compose config 로 정상적으로 api_key가 입력 됐는지 확인합니다. 정상적으로 되었다면 API_KEY 쪽에 자신의 API Token이 적혀있는 것을 확인할 수 있습니다.

 

image.png.jpg그리고 docker-compose up -d를 실행하면 위와 같이 정상적으로 등록되어있는 것을 확인할 수 있으며 SSH도 접속 가능하고 리버스 프록시로 다른 서브도메인으로도 잘 연결됩니다.

 


 

글 올리는건 사실 제가 나중에 까먹었을 때 보려는 느낌이 강합니다. 다른 분들에게 도움이 되었으면 좋겠는데 설명이 서툴러서 잘 이해가 되셨으려나 모르겠네요.

신고공유스크랩
6
profile image 1등
달소 2022.04.12. 10:24

상세한 설명감사드립니다 ㅎㅎ

저도 글올리는게.. 제가 안까먹으려고 올리는게 많았습니다...

 

그나저나 docker-compose의 늪에빠지셨다니 썩 좋군요.. docker-compose 한번빠지면 일반 docker run은 잘 쳐다보지도않습니다 ㅎㅎㅎㅎㅎ

profile image
ExpBox 글쓴이 2022.04.12. 12:52
달소

맞습니다. 전에는 솔직히 이해가 잘 안가서 cli를 썼는데 지금은 docker-compose가 훨씬 좋네요. 친구가 스웜이나 쿠버네티스 하자는데 거기까지는 아직 이미지 빌드도 못하는 실력이라 ㅎㅎ.. 좀 더 익숙해지고 시도해봐야겠습니다.

3등
마이크로서버 2023.04.23. 23:10

이거 제가 설정 해 봤는데... oznu <--- 이분 도커 이미지는 사용안하는게 좋을거 같습니다. 저번에 과카몰레도 그렇구요. 만드신 도커 이미지가 굉장히 좋기는 한데... 다른 이유보다 업데이트가 거의 2년전에서 다 멈추었네요. 이제 개발을 안하시는거 같아요. 시놀에서 올려 봤는데... 클플 DDNS를 시놀에서 아예 못불러 오더라구요. 먹통 됩니다. 무슨 에러인가 싶어서 설치한 도커 이미지도 지워보고... 여러가지로 테스트 해보다가 결국 DSM 다시 설치 했는데 마찬가지로 IP가 등록이 안되는 에러가 납니다. 일단 DSM 설치 전부해서 하나씩 체크 하면 확인 하던중 클플 서버의 DNS를 뭔가 조작하는거 같았어요. DNS 새로 설정하고 잡으니 잘 됩니다. 제 생각에는 스크립트로 스케줄로 돌리는게 좋은거 같습니다.

profile image
ExpBox 글쓴이 2023.04.25. 21:20
마이크로서버
IP가 변함이 없어서 그런건지 제 오라클 ARM 서버에서는 제대로 돌아가고 있습니다. 관련해서 깃허브 레포를 확인해봐도 클라이언트를 API로 최신으로 받아오는거라 굳이 업데이트를 안해도 되는거라 생각하는 것일수도 있죠. 요즘은 뜸하긴 한데 최근 1월 8일에 깃허브의 다른 레포를 업데이트한 일이 있기 때문에 다른 개발에 매진하는 듯 합니다. 이 이미지가 마음에 안드시면

https://svrforum.com/docker/758549
클라우드 플레어에서 자체 제작한 이미지인 요 이미지로 Zero Trust를 사용하시는것도 좋은 방법일 듯 합니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
정보 proxmox/debian 레포 변경사항 (N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware') 1 달소 10시간 전08:21 104 +1
잡담 Proxmox 사이트도 개편을 했나보네요 1 달소 11시간 전07:46 200 +1
질문 적용 방법을 모르겠습니다?? 13 초보나스 2일 전08:05 245 +1
3860 질문
normal
감자칩 17분 전18:56 10 0
3859 질문
image
게르노 3시간 전16:08 31 0
3858 질문
image
동도리군 6시간 전12:14 72 0
3857 정보
image
달소 10시간 전08:21 104 +1
3856 잡담
image
달소 11시간 전07:46 200 +1
3855 가이드
image
달소 11시간 전07:24 182 0
3854 질문
normal
서버구축하자 1일 전13:09 377 0
3853 질문
image
미스터빈 1일 전20:09 205 0
3852 질문
image
초보나스 2일 전08:05 245 +1
3851 질문
normal
웹서버구축관심 3일 전02:22 313 0
3850 잡담
normal
달소 3일 전23:39 206 +2
3849 질문
normal
게르노 4일 전03:11 192 0
3848 질문
image
감자칩 4일 전20:04 289 0
3847 질문
normal
ljr10 4일 전19:45 203 0
3846 질문
image
TANG 5일 전11:33 227 0
3845 질문
normal
감자칩 6일 전18:55 149 0
3844 질문
normal
숲형 6일 전11:21 277 0
3843 질문
image
kmw_ 6일 전09:37 199 +1
3842 질문
normal
bass9030 6일 전00:43 139 +1
3841 잡담
normal
칼룬 24.04.18.18:12 286 +1