
Zero Trust 아키텍처를 통해 오리진에 대한 보안 아웃바운드 전용 연결을 가능하게 하는 Cloudflare Tunnel용 클라이언트입니다. 방화벽 변경 없이 HTTP, WebSocket, SSH 및 RDP 트래픽을 지원하며, 액세스 제어와 인증을 제공합니다.
Cloudflare Tunnel의 명령줄 클라이언트가 포함되어 있습니다. Cloudflare 네트워크에서 사용자의 오리진(origin)으로 트래픽을 프록시하는 터널링 데몬입니다.
이 데몬은 Cloudflare 네트워크와 사용자의 오리진(예: 웹서버) 사이에 위치합니다. Cloudflare가 클라이언트 요청을 유치하여 이 데몬을 통해
사용자에게 전송하며, 방화벽에 구멍을 뚫을 필요가 없습니다. 즉, 오리진을 최대한 폐쇄적으로 유지할 수 있습니다.
자세한 문서는 Cloudflare Docs의 Cloudflare Tunnel 섹션에서 확인할 수 있습니다.
오리진으로의 프록시와 관련된 모든 사용법은 cloudflared tunnel help에서 확인할 수 있습니다.
또한 cloudflared를 사용하여 (cloudflared tunnel로 보호되는) Tunnel 오리진에 TCP 트래픽을
Layer 4(즉, HTTP/websocket이 아닌)로 액세스할 수 있으며, 이는 SSH, RDP 등의 사용 사례에 유용합니다.
이러한 사용법은 cloudflared access help에서 확인할 수 있습니다.
대신 WARP 클라이언트를 사용하여
클라이언트 측에서 cloudflared access 명령 없이 Layer 4 트래픽에 대해 Tunnel 뒤의 프라이빗 오리진에 액세스할 수도 있습니다.
Cloudflare Tunnel을 사용하기 전에 Cloudflare 대시보드에서 몇 가지 단계를 완료해야 합니다: Cloudflare 계정에 웹사이트를 추가해야 합니다. 오늘날에는 웹사이트 없이도 Tunnel을 사용할 수 있지만(예: 프라이빗 라우팅), 레거시 이유로 이 요구 사항은 여전히 필요합니다:
cloudflared 설치다운로드는 독립 실행형 바이너리, Docker 이미지, Debian, RPM, Homebrew 패키지로 제공됩니다. cloudflared GitHub 저장소의 릴리스 페이지에서도 릴리스를 찾을 수 있습니다.
cloudflared의 Docker 이미지는 DockerHub에서 사용 가능합니다.make cloudflared를 실행하면 됩니다.Cloudflare Tunnel에 대한 사용자 문서는 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/ 에서 확인할 수 있습니다.
설치가 완료되면 cloudflared를 Cloudflare 계정에 인증하고 Tunnel을 생성하여 오리진으로 트래픽을 제공할 수 있습니다.
Cloudflare에 웹사이트를 추가하기 전에 Cloudflare Tunnel을 테스트해보고 싶으신가요? 여기에서 확인 가능한 문서를 사용하여 TryCloudflare로 테스트할 수 있습니다.
Cloudflare는 현재 최신 릴리스로부터 1년 이내의 cloudflared 버전을 지원합니다. 기능 제공과 무관한 주요 변경 사항이 도입되어 1년 이상 전에 릴리스된 버전에 영향을 줄 수 있습니다. cloudflared 업그레이드에 대한 자세한 내용은 개발자 문서에서 확인할 수 있습니다.
예를 들어, 2023년 1월 기준으로 Cloudflare는 cloudflared 2023.1.1부터 cloudflared 2022.1.1까지 지원합니다.
cloudflared를 로컬에서 빌드하려면 make cloudflared를 실행하세요.
로컬에서 테스트를 실행하려면 make test를 실행하세요.
코드 포맷팅과 코드 품질 유지를 위해 make fmt와 make lint를 사용하세요.
인터페이스 변경 후에는 목을 다시 생성해야 할 수 있으므로 make mocks를 실행하세요.
CI 오류를 방지하려면 각 push 전에 린팅과 테스트를 실행하는 pre-push 훅을 설치할 수 있습니다:
make install-hooks
이렇게 하면 git이 각 push 전에 make fmt-check lint test를 실행하도록 .githooks/의 훅을 사용하게 구성됩니다.