3분 요약
- cloudflare 터널 사용하면 빠른 HTTPS 배포 환경을 구축할 수 있어서 좋음
- LGU+ 통신사와 같이 외부망으로 빼기 힘드 환경에서 사용하기 좋음.
1. Cloudflare Tunnel에 대하여
Cloudflare tunnel이란?
cloudflare에서 제공하는 tunnel이라는 서비스는 공개 IP가 없어도 로컬 서버를 인터넷에 안전하게 노출시킬 수 있는 서비스이다.
동작 원리
cloudflare 터널은 cloudflared라는 경량 소프트웨어를 사용하는데, 해당 소프트웨어는 로컬 머신에서 실행되며, Cloudflare 네트워크와 암호화된 아웃 바운드 연결을 통해 트래픽이 로컬 서비스로 전달된다.
- 사용자 도메인에 접속
- Cloudflare 서버가 요청을 수신
- Cloudflare는 cloudflared 클라이언트를 통해 요청을 로컬 서버에 전달
- 로컬 서버가 응답을 다시 터널을 통해 Cloudflare로 보냄
- Cloudflare가 사용자에게 응답 전달
장점과 단점
장점
- 보안 강화
- 간편한 설정
- 무료 SSL/TLS 인증서
- 로컬 개발 환경에서도 사용 가능
단점
- 복붙이 안 되는 환경에서 칠게 많아짐.
- 외부망에서 작업을 하고 있는데, 해당 서버를 임시로 외부망으로 빼지 못하는 상황이라면 작업에 제한이 걸릴 수 있음.
2. 환경 설정
저자 사전 환경 설정 사항
- proxmox VE를 이용하여 ubuntu 환경으로 구성
- ubuntu minimized를 설정함.
- proxmox는 이미 외부망에 노출이 되어 있음.
Announcement
만약 이 글을 보고 처음 설정을 해보는 사람이라면 순서대로 따라하면 잘 될 것이라고 믿는다. 혹시나 똑같이 진행하는 과정에서 오류가 발생할 경우 “오류 )” 라는 부문에서 같은 오류인지 볼것!
2-1. cloudflared 설치
sudo apt-get update
sudo apt-get install cloudflared오류 ) 설치 시 cloudflared 패키지 찾을 수 없음 오류

한 번쯤 ubuntu 환경에서 cloudflared를 설치하려고 하면 해당 패키지를 찾을 수 없다는 오류를 볼 수 있습니다.
해결 방법
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg \
| sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main' \
| sudo tee /etc/apt/sources.list.d/cloudflared.listsudo apt install cloudflared2-2. 로그인
배포한 proxmox 서버에 가서 다음과 같은 명령어를 통해서 자신의 cloudflared에 접근하기 위한 .pem 인증 파일을 받아야 한다.
# 서버 컴퓨터에 cloudflare 터널 로그인 명령어 적기
cloudflared tunnel login만약 위 명령어를 쳤다면 아래 사진과 동일한 화면을 볼 수 있다.

위에 주황색 위치에 뜨는 사이트 주소로 접속하기!

만약 접속했다면 위와 같은 사진을 볼 수 있다. 혹시 로그인을 하지 않았다면, 로그인 하고 다시 해당 주소를 url 창에 쳐서 들어가면 됨!
자신에 해당하는 domain 선택하기!

선택했다면 권한 부여 클릭
오류 ) 로그인을 했는데도 지속적으로 뜨는 waiting for login 오류

저의 경우 권한 부여를 끝내고 나왔음에도 지속적으로 waiting for login이라는 위와 같은 글자가 반복적으로 출력됐습니다.
가설1. secret 모드 브라우저에서 다시 접속하기
ChatGPT한테 질문한 결과 가장 흔한 4가지를 알려주었는데

이런 이유를 근거로 깔끔한 브라우저에서 하라고 했다. 따라서 Secret 모드에서 진행을 했지만 결과는 동일! 실패! (참고로 광고 차단 확장자가 있기는 했다~)
해결 방법
문제점을 찾았다… 이건 url의 문제였다. 혹시나 AI한테 사진을 찍어서 OCR 돌려서 접속하는 사람이 있다면 url을 확인해 봐라… url이 틀리면 권한 부여를 눌러도 안된다…
2-3. 터널 생성
cloudflared tunnel create hlab오류)

2-4. DNS 설정
cloud flared tunnel route dns hlab-tunnel hlab.haeyul.cloud2-5. 터널 실행
cloudflared tunnel run hlab-tunnel3. 내가 만든 자동화 도구 홍보
지금 위와 같은 명령어를 일일이 다 치기 귀찮고 매번 새로운 vm 환경 설정하는 게 귀찮다고 느꼈습니다. 그래서 github에 .sh 파일로 자동화를 만들어 뒀습니다. 혹시나 필요하신 분들은 clone 받으셔서 사용해주시면 좋을 것 같아요!!!
- github : proxmox-setting github
git clone https://github.com/fixgramwork/proxmox-setting.git