Skip to main content

Cloudflare Tunnel 1 설정

이 가이드에서는 cloudflared를 사용하여 로컬에서 실행 중인 서비스를 Cloudflare 네트워크를 통해 안전하게 노출하는 방법을 안내합니다.

1. cloudflared 설치

먼저, 사용 중인 운영체제에 맞게 cloudflared를 설치해야 합니다.

macOS

Homebrew를 사용하여 설치할 수 있습니다.

brew install cloudflare/cloudflare/cloudflared

Windows

Scoop 또는 Chocolatey를 사용하여 설치할 수 있습니다.

Scoop:

scoop install cloudflared

Chocolatey:

choco install cloudflared

Linux

DEB 또는 RPM 패키지를 다운로드하여 설치합니다.

Debian/Ubuntu:

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb

CentOS/RHEL:

curl -L --output cloudflared.rpm https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.rpm
sudo rpm -i cloudflared.rpm

2. Cloudflare 계정 인증

cloudflared를 Cloudflare 계정과 연동해야 합니다. 아래 명령어를 실행하면 브라우저 창이 열리고, 로그인하여 인증을 완료할 수 있습니다.

cloudflared tunnel login

인증이 완료되면 cert.pem 파일이 기본 cloudflared 디렉토리에 생성됩니다.

3. 터널 생성하기

이제 터널을 생성합니다. 터널 이름을 원하는 대로 지정할 수 있습니다. (예: my-tunnel)

cloudflared tunnel create my-tunnel

이 명령어를 실행하면 터널의 UUID와 함께 자격 증명 파일(TUNNEL-UUID.json)이 생성됩니다. 이 파일은 터널을 실행하는 데 필요하므로 안전하게 보관해야 합니다.

4. 터널 설정 파일 만들기

터널의 라우팅을 정의하기 위해 설정 파일을 작성해야 합니다. ~/.cloudflared/ 디렉토리에 config.yml 파일을 생성하고 아래와 같이 내용을 채웁니다.

tunnel: <YOUR-TUNNEL-UUID>
credentials-file: /Users/<YOUR-USERNAME>/.cloudflared/<YOUR-TUNNEL-UUID>.json

ingress:
- hostname: tunnel.yourdomain.com
service: http://localhost:8000
- service: http_status:404
  • <YOUR-TUNNEL-UUID>: 이전 단계에서 얻은 터널 UUID로 교체합니다.
  • <YOUR-USERNAME>: 사용자 이름으로 교체합니다.
  • hostname: Cloudflare 대시보드에서 설정한 도메인 또는 서브도메인을 입력합니다.
  • service: 로컬에서 실행 중인 서비스의 주소를 입력합니다. (예: http://localhost:8000)

5. DNS 레코드 생성

터널을 통해 트래픽을 라우팅하려면 Cloudflare 대시보드에서 CNAME 레코드를 생성해야 합니다.

cloudflared tunnel route dns my-tunnel tunnel.yourdomain.com

my-tunnel은 터널 이름이고, tunnel.yourdomain.com은 사용할 호스트 이름입니다.

6. 터널 실행하기

이제 모든 설정이 완료되었습니다. 아래 명령어로 터널을 실행합니다.

cloudflared tunnel run my-tunnel

터널이 성공적으로 실행되면 tunnel.yourdomain.com으로 들어오는 모든 요청이 로컬의 http://localhost:8000으로 전달됩니다.

이제 로컬 서버가 Cloudflare의 보호를 받으며 안전하게 외부에 노출되었습니다!