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의 보호를 받으며 안전하게 외부에 노출되었습니다!