Cloudflare Tunnel 개념 설명
기본 개념
역방향 프록시 역할을 하는 보안 터널
로컬 서버(내 PC, 사내 서버 등)를 공인 IP 없이도 인터넷에 안전하게 노출시켜주는 서비스
cloudflared라는 경량 클라이언트를 설치해서 사용
주요 특징
방화벽 개방 불필요
서버의 80/443 포트를 외부에 직접 열지 않아도 됨
cloudflared가 Cloudflare 네트워크 쪽으로 먼저 연결을 여는 방식
보안 강화
Cloudflare 네트워크가 앞단에서 공격 필터링
DDoS 방어, WAF 규칙 적용 가능
설치와 사용이 간단
로컬에서 cloudflared tunnel create → Cloudflare 대시보드에서 라우팅 설정 → 도메인 연결
활용 예시
개발 환경 서버를 임시로 외부 팀원에게 공유
사내 내부망 웹 서비스에 외부 접근 허용 (Zero Trust 기반)
IoT 기기 원격 제어
Cloundflare 설치 방법
맥OS / 맥북에서 설치할 때
brew install cloudflared
CentOS / RHEL 계열 Linux 서버일 때
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -ivh cloudflared-linux-x86_64.rpm
Debian/Ubuntu 계열 Linux 서버일 때
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
cloudflare tunnel
처음 시작할 때
cloudflared tunnel login
cloudflared를 설치한 직후에는 cert 정보가 없다.
위 명령어로 브라우저를 오픈하고 cloudflare 사이트에서 인증하면 cert 정보가 생성된다.
cloudflare tunnel 생성
cloudflared tunnel create my-tunnel
이 명령으로 터널 ID와 자격 증명 파일이 생성된다.
여기서 알려주는 token은 아래 위치에 자동으로 저장된다.
mac os일 때는 /home/사용자/.cloudflared/xxxx.json
linux 일 때는 /root/.cloudflared/xxxx.json
config.yml 작성 (위와 동일 경로에 생성)
tunnel: mqtt-tunnel
credentials-file: /home/사용자/.cloudflared/xxxx.json
ingress:
- hostname: your.domain.com
service: tcp://localhost:1883
- service: http_status:404
터널 실행
cloudflared tunnel run mqtt-tunnel
Systemctl에 등록 후 이용하기
서비스 파일 생성
# systemd 서비스 파일 생성
sudo tee /etc/systemd/system/cloudflared-tunnel.service > /dev/null << EOF
[Unit]
Description=Cloudflare Tunnel Service
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/usr/local/bin/cloudflared tunnel run pet-api-tunnel
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
서비스 활성화 및 시작
# systemd 재로드
sudo systemctl daemon-reload
# 서비스 활성화 (부팅 시 자동 시작)
sudo systemctl enable cloudflared-tunnel
# 서비스 시작
sudo systemctl start cloudflared-tunnel
# 서비스 상태 확인
sudo systemctl status cloudflared-tunnel
Cloudflare DNS 도 이용하고 싶다면
Cloudflare 대시보드 → DNS → your.domain.com
유형: CNAME
값: uuid.cfargotunnel.com (터널 생성 시 발급된 값)
프록시(구름 아이콘)는 활성화(주황) 상태여야 함
':: Back-end' 카테고리의 다른 글
| NCP 네이버 클라우드 플랫폼에서 로드밸런서 만드는 법 (2) | 2025.08.26 |
|---|---|
| ngrok 설치 및 사용방법 - 외부에서 내 로컬서버 접속하기 (0) | 2025.08.19 |
| HTTP/1, 2, 3 특징과 차이점 (0) | 2025.08.01 |
| Grafana, Loki, Prometheus 설치하기 (0) | 2025.07.14 |
| 리눅스에서 hosts 파일에 ip 등록하기 (1) | 2025.07.14 |