Raspberry Pi 터널 설정
항상 켜져 있는 홈 서버용 Raspberry Pi Cloudflare Tunnel 구축
Raspberry Pi 또는 소형 미니 PC에서 cloudflared를 항상 온라인 상태로 유지해야 할 때 이 가이드를 사용하세요. 설치, systemd 설정, 안전 점검, GhostlyShare 및 ghs CLI 선택 기준을 다룹니다.
목표는 안정적인 아웃바운드 연결 유지이며, 마법 같은 익명성은 아닙니다. 방문자는 라우터 접근 권한이 필요 없지만 Cloudflare, 계정, 사용 습관은 중요합니다.
터널이 노트북 절전, 데스크톱 로그오프, 일상 작업 중에도 유지되어야 할 때 Raspberry Pi가 유용합니다. 수동 서비스 파일 대신 앱이나 CLI 작업을 선호하면 GhostlyShare도 장기 공유에 적합합니다.
목차
간단 답변: 터널을 항상 온라인으로 유지하려면 Raspberry Pi 사용
웹사이트, 대시보드, 웹훅 엔드포인트, 실험실 서비스가 일상 노트북에 의존하지 않고 항상 접속 가능해야 할 때 Raspberry Pi가 좋은 Cloudflare Tunnel 연결 장치입니다. 장기 운영 옵션은 이것만 있는 게 아니며, GhostlyShare가 더 간편한 터널 워크플로우가 될 수 있습니다.
| 필요 | 사용 | 이유 |
|---|---|---|
| 항상 켜져 있는 홈 서비스용 호스트명 | Raspberry Pi용 Cloudflare Tunnel | Pi는 항상 온라인 상태 유지, 예측 가능한 재부팅, Linux 서비스로 cloudflared 실행이 가능합니다. |
| 미리보기, 웹훅 콜백, 관리형 공유 | GhostlyShare | GhostlyShare는 앱이나 CLI에서 터널 워크플로우를 관리해 cloudflared 설정 수동 관리보다 간편합니다. |
| 격리 강화된 프로덕션 앱 | VPS 또는 관리형 호스팅 | 공용 서버는 모니터링, 백업, 홈 네트워크 분리 관리가 더 쉽습니다. |
간단한 구조: 방문자, Cloudflare, Pi, 로컬 서비스
Cloudflare Tunnel은 오리진 측 아웃바운드 연결을 유지합니다. Raspberry Pi가 Cloudflare에 연결을 열고, Cloudflare는 공개 호스트명을 localhost:3000 또는 LAN 주소 같은 로컬 서비스에 매핑합니다.
방문자는 집 라우터 포트가 아닌 Cloudflare 엣지와 공개 호스트명에 접속합니다.
Cloudflare가 공개 엣지, DNS 존, 터널 매핑, 요청 경로를 관리합니다.
cloudflared가 Pi에서 실행되며 Cloudflare로 나가는 연결을 유지합니다.
실제 앱은 localhost, 다른 포트, 또는 Pi가 접근 가능한 LAN 호스트에 위치할 수 있습니다.
모든 대상에 대한 프라이버시 벽으로 보지 마세요. 주로 방문자와 무작위 스캔이 집 라우터나 원본을 직접 확인하는 것을 막습니다.
cloudflared 설치 전 Raspberry Pi 준비하기
터널 문제 대부분은 Cloudflare가 아니라 불안정한 장치, 변경된 로컬 서비스 주소, 또는 서비스 사용자가 읽지 못하는 설정 파일 때문입니다.
Raspberry Pi OS 또는 Debian으로 시작해 업데이트를 적용하고, 64비트 지원 시 64비트를 권장합니다.
Pi에 안정적인 네트워크 경로를 제공하세요. LAN 호스트 접근 시 유선 이더넷 또는 DHCP 예약을 권장합니다.
Cloudflare, DNS, systemd 적용 전 로컬에서 앱이 정상 작동하는지 확인하세요.
관리자 패널을 실수로 노출하지 마세요. 비공개 도구는 Cloudflare Access 뒤에 두거나 로컬에 유지하세요.
하드웨어 선택: Raspberry Pi 5 키트 권장
터널 연결용으로는 단순 보드보다 Raspberry Pi 5 키트가 안전합니다. 보드, 안정적인 USB-C 전원, 쿨링 또는 팬, 신뢰할 수 있는 저장장치를 갖추고 Cloudflare 문제를 판단하세요.
공식 Raspberry Pi 27W USB-C 전원 또는 동등한 5V/5A 전원을 사용하고 쿨링을 반드시 적용하세요. 전원 불안정과 과열은 cloudflared 설정이 올바른 경우에도 터널 불안정으로 보일 수 있습니다.
Cloudflare Tunnel Raspberry Pi 설치 가이드
Pi 아키텍처에 맞는 최신 패키지 명령은 Cloudflare 대시보드나 공식 문서를 참고하세요. 아래 명령은 작업 순서 예시일 뿐, 패키지 URL 변경을 보장하지 않습니다.
1단계: Pi 업데이트 및 아키텍처 확인
먼저 업데이트를 설치하고 아키텍처를 확인해 Cloudflare에서 올바른 cloudflared 패키지 명령을 복사하세요.
sudo apt update
sudo apt upgrade -y
dpkg --print-architecture2단계: 최신 공식 명령어로 cloudflared 설치
Cloudflare 대시보드나 문서에서 아키텍처에 맞는 최신 Linux 명령어를 확인하세요. 설치 후 바이너리를 검증합니다.
# Paste the current official Cloudflare install command for your Pi here.
cloudflared --version3단계: 인증 후 명명된 터널 생성
Cloudflare 존을 인증하고 명명된 터널을 생성한 뒤 출력된 터널 UUID를 복사하세요.
cloudflared tunnel login
cloudflared tunnel create home-pi4단계: 명확한 config.yml 작성
실행 전 터널 UUID, 호스트명, 로컬 서비스, 자격 증명 경로를 교체하세요. 폴백 규칙은 마지막에 둡니다.
mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.ymltunnel: <tunnel-uuid>
credentials-file: /home/pi/.cloudflared/<tunnel-uuid>.json
ingress:
- hostname: app.example.com
service: http://localhost:3000
- service: http_status:4045단계: 유효성 검사, DNS 경로 설정, 포그라운드 실행
인그레스 규칙을 검증하고 DNS 경로를 생성한 뒤, 다른 네트워크에서 테스트할 때 터널을 포그라운드로 유지하세요.
cloudflared tunnel ingress validate
cloudflared tunnel route dns home-pi app.example.com
cloudflared tunnel run home-pi올바른 config 경로로 Linux 서비스로 cloudflared 실행
Linux에서 중요한 점은 config 경로입니다. sudo로 서비스를 설치하면 홈 디렉터리가 root의 홈으로 바뀌어 pi 사용자로 테스트한 config를 서비스가 찾지 못할 수 있습니다.
서비스 1단계: 명확한 config 경로로 서비스 설치
테스트한 pi 사용자 config와 서비스 계정 간 sudo 홈 디렉터리 불일치를 방지합니다.
sudo cloudflared --config /home/pi/.cloudflared/config.yml service install서비스 2단계: 서비스 활성화 및 상태 확인
systemd로 cloudflared를 시작한 후 예상 config를 사용하며 정상 작동하는지 확인하세요.
sudo systemctl enable --now cloudflared
systemctl status cloudflared서비스 3단계: 로그 확인 및 재시작 테스트
경로 의존 전 로그로 config 경로, 자격 증명, DNS, 로컬 서비스 오류를 확인하세요.
journalctl -u cloudflared -f
sudo systemctl restart cloudflared
systemctl status cloudflared소규모 상시 터널 운영 점검표
재부팅, 업데이트, 로그, 접근 규칙이 안정적일 때 홈 터널도 안정적으로 작동합니다. URL 공유 전 이 부분을 반드시 점검하세요.
Pi를 재시작하고 SSH 접속 없이 호스트명이 정상 작동하는지 확인하세요.
개인 앱은 Cloudflare Access, 강력한 로그인, 또는 로컬 전용 네트워크 경계 뒤에 두세요.
OS와 cloudflared를 정기적으로 패치하고 업데이트 후 서비스 상태를 확인하세요.
터널 ID, 계정 이메일, 호스트명, 개인 서비스명이 포함된 로그나 스크린샷은 공개하지 마세요.
config는 의도적으로 백업하되 터널 자격 증명은 비밀처럼 보호하세요.
이 설정은 방문자에게 오리진을 숨기지만 Cloudflare 계정, 도메인 기록, 관리자 행위는 숨기지 않습니다.
문제 해결: 주로 발생하는 주요 오류
| 증상 | 가능한 원인 | 첫 점검 |
|---|---|---|
| 앱 대신 Cloudflare 오류 페이지 표시 | 터널이 중단되었거나 서비스 URL이 잘못되었거나 로컬 앱이 응답하지 않습니다. | Pi에서 systemctl status cloudflared, journalctl 명령과 로컬 서비스에 curl을 실행하세요. |
| 설치 후 서비스가 백그라운드에서 작동하지 않음 | systemd가 다른 홈 디렉터리나 설정 경로를 사용 중입니다. | --config 경로를 /home/pi/.cloudflared/config.yml로 명시하여 서비스를 다시 설치하세요. |
| 호스트명이 터널에 연결되지 않음 | DNS 경로, 호스트명 또는 Cloudflare 존이 지정된 터널과 연결되어 있지 않습니다. | Zero Trust에서 공개 호스트명을 확인하고 cloudflared tunnel info home-pi 명령을 실행하세요. |
| 관리자 페이지가 공개적으로 접근 가능함 | 인그레스 규칙이 접근 제어 없는 사설 도구를 가리킵니다. | Cloudflare Access 뒤로 옮기거나 해당 서비스를 로컬 전용으로 유지하세요. |
의존 전 반드시 확인할 공식 문서
Pi 설정 중 Cloudflare 공식 문서를 열어 두세요. 제품명, 명령어, 대시보드, 요금제 제한이 변경될 수 있습니다.
Raspberry Pi Cloudflare Tunnel 자주 묻는 질문
자주 묻는 질문
Raspberry Pi가 Cloudflare Tunnel에 적합한가요?
네, 소규모 홈 서버나 실험실 서비스용 상시 연결 장치로 적합합니다. 저전력이며 안정적이고, 일상용 노트북보다 항상 켜두기 쉽습니다.
라우터 포트 포워딩이 필요한가요?
아니요. Cloudflare Tunnel은 cloudflared에서 Cloudflare로 나가는 연결을 사용하므로 방문자가 라우터로 직접 들어오는 경로가 필요 없습니다.
대신 GhostlyShare CLI를 사용해야 하나요?
미리보기, 웹훅, 스크립트 공유 또는 장기 공유를 앱으로 관리하려면 GhostlyShare 또는 ghs CLI를 사용하세요. 서비스 파일, 인그레스 설정, 호스트 OS를 완전히 제어하려면 Raspberry Pi와 cloudflared를 사용하세요.
이것이 내 홈 서버를 익명으로 만드나요?
아닙니다. 방문자에게 출처를 숨길 수는 있지만, Cloudflare 계정 정보, 도메인 기록, 결제 내역, 로그, 콘텐츠, 관리자 활동 등은 여전히 프로젝트와 연결될 수 있습니다.
