
cloudflared v2026.8.1
Cloudflare Tunnelのクライアント。ゼロトラストアーキテクチャを介して、発信専用接続でオリジンに安全にアクセスできるようにします。ファイアウォールの変更なしにHTTP、WebSocket、SSH、RDPトラフィックをサポートし、アクセス制御と認証を提供します。
Cloudflare Tunnel クライアント
Cloudflare Tunnel のコマンドラインクライアントを含みます。これは、Cloudflare ネットワークからオリジンへのトラフィックをプロキシするトンネリングデーモンです。
このデーモンは Cloudflare ネットワークとオリジン(例: Web サーバー)の間に位置します。Cloudflare はクライアントのリクエストを受け取り、このデーモンを介して
あなたに送信します。ファイアウォールに穴を開ける必要はなく、オリジンは可能な限り閉じた状態を保つことができます。
詳細なドキュメントは Cloudflare Docs の Cloudflare Tunnel セクションにあります。
オリジンへのプロキシに関するすべての使用方法は cloudflared tunnel help で確認できます。
また、cloudflared を使用して、レイヤー4(つまり HTTP/WebSocket ではない)の TCP トラフィックについて、(cloudflared tunnel で保護された) Tunnel オリジンにアクセスすることもできます。これは SSH や RDP などのユースケースに関連します。
そのような使用方法は cloudflared access help で確認できます。
代わりに WARP クライアントを使用すると、クライアント側で cloudflared access コマンドを必要とせずに、レイヤー4トラフィック用の Tunnel の背後にあるプライベートオリジンにアクセスできます。
はじめる前に
Cloudflare Tunnel を使用する前に、Cloudflare ダッシュボードでいくつかの手順を完了する必要があります。Cloudflare アカウントに ウェブサイトを追加する必要があります。現在ではウェブサイトなしで Tunnel を使用することも可能ですが(例: プライベート ルーティング)、レガシーな理由によりこの要件は依然として必要です:
cloudflared のインストール
ダウンロードは、スタンドアロンバイナリ、Docker イメージ、および Debian、RPM、Homebrew パッケージとして利用可能です。リリースは cloudflared GitHub リポジトリのこちらでも確認できます。
- Homebrew 経由、または最新の Darwin amd64 リリースをダウンロードすることで、macOS にインストールできます
- Linux 用のバイナリ、Debian、RPM パッケージはこちらにあります
cloudflaredの Docker イメージは DockerHub で利用可能です- Windows マシンにはこちらの手順でインストールできます
- ソースからビルドするには、以下の開発セクションに記載されている必要なバージョンの go をインストールしてください。その後、
make cloudflaredを実行できます。
Cloudflare Tunnel のユーザードキュメントは https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/ にあります。
Tunnel の作成とトラフィックのルーティング
インストール後、cloudflared を Cloudflare アカウントで認証し、オリジンへのトラフィックを提供する Tunnel の作成を開始できます。
- こちらの手順で Tunnel を作成します
- その Tunnel にトラフィックをルーティングします:
- Cloudflare のパブリック DNS レコード経由
- または Cloudflare Load Balancerによって誘導されるパブリックホスト名経由
- または WARP クライアントのプライベートトラフィックから
TryCloudflare
Cloudflareにウェブサイトを追加する前にCloudflare Tunnelをテストしたい場合は、こちらで入手可能なドキュメントに従ってTryCloudflareを利用できます。
破壊的変更
CLIフラグ、環境変数、設定キー、またはコマンドの削除は破壊的変更です。このような削除は、それらを削除するリリースの前にCloudflare Tunnel changelogで告知する必要があります。
非推奨バージョン
Cloudflareは現在、最新リリースから1年以内のcloudflaredのバージョンをサポートしています。機能の可用性とは無関係な破壊的変更が導入され、1年以上前にリリースされたバージョンに影響を与える可能性があります。cloudflaredのアップグレードについて詳しくは、開発者ドキュメントをご覧ください。
例えば、2023年1月時点でCloudflareはcloudflaredバージョン2023.1.1からcloudflared 2022.1.1までをサポートします。
開発
要件
- GNU Make
- capnp
- go >= 1.27.3
- オプションのツール:
Goの更新
go.modのgoディレクティブは、完全なmajor.minor.patchバージョンを指定する必要があります(例: go 1.27.3)。.0リリースを含め、パッチバージョンを省略しないでください。これはcloudflaredのビルドとテストに使用される正確なGoバージョンです。MakefileはこれからGOTOOLCHAIN=go<version>をエクスポートするため、インストールされているGoが古い場合や新しい場合にはmakeがそのツールチェーンをダウンロードします。makeがgo run pkg@versionで実行するツールもこのツールチェーンを使用します。go.modのtoolchainディレクティブは無視されます。追加しないでください。インストールされているGoを代わりに使用するには、make <target> GOTOOLCHAIN=localを実行してください。
Goをアップグレードする際は、goディレクティブと、.gitlab-ci.yml、.ci/image/Dockerfile、.github/workflows/check.yaml、およびDockerfile内の対応するすべてのバージョン参照を更新してください。.ci/linux.gitlab-ci.ymlのLinux CIビルダーイメージとダイジェストを一致するように更新してください。そのgolangVersionがmajor/minorイメージファミリーを選択します。macOSとWindowsでは、不一致によるコストはツールチェーンのダウンロードのみです。GOTOOLCHAIN=localを使用するビルドは、Goがgo.modより古い場合は失敗し、新しい場合は自身のGoを使用します。
ビルド
cloudflaredをローカルでビルドするにはmake cloudflaredを実行してください
テスト
テストをローカルで実行するにはmake testを実行してください
リンティング
コードをフォーマットし、良好なコード品質を維持するにはmake fmtとmake lintを使用してください
モック
インターフェースを変更した後、モックを再生成する必要がある場合があるため、make mocksを実行してください
Gitフック
CIエラーを回避するために、各プッシュ前にリンティングとテストを実行するpre-pushフックをインストールできます:
make install-hooks
これにより、各プッシュ前に make fmt-check lint test を実行する .githooks/ 内のフックを git が使用するように設定されます。