
Cloudflare Tunnelのクライアント。ゼロトラストアーキテクチャを介して、発信専用接続でオリジンに安全にアクセスできるようにします。ファイアウォールの変更なしにHTTP、WebSocket、SSH、RDPトラフィックをサポートし、アクセス制御と認証を提供します。
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 リポジトリのこちらでも確認できます。
cloudflared の Docker イメージは DockerHub で利用可能ですmake cloudflared を実行できます。Cloudflare Tunnel のユーザードキュメントは https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/ にあります。
インストール後、cloudflared を Cloudflare アカウントで認証し、オリジンへのトラフィックを提供する Tunnel の作成を開始できます。
Cloudflareにウェブサイトを追加する前にCloudflare Tunnelをテストしたい場合は、こちらで入手可能なドキュメントを使用してTryCloudflareで試すことができます。
CLIフラグ、環境変数、設定キー、またはコマンドの削除は破壊的変更です。このような削除は、それらを削除するリリースの前にCloudflare Tunnel changelogで告知する必要があります。
Cloudflareは現在、最新リリースから1年以内のcloudflaredのバージョンをサポートしています。機能の可用性とは無関係な破壊的変更が導入され、1年以上前にリリースされたバージョンに影響を与える可能性があります。cloudflaredのアップグレードについて詳しくは、開発者向けドキュメントをご覧ください。
例えば、2023年1月時点でCloudflareはcloudflaredバージョン2023.1.1からcloudflared 2022.1.1をサポートします。
go.modのgoディレクティブは、完全なmajor.minor.patchバージョンを指定する必要があります(例: go 1.27.4)。.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を実行します
CIエラーを回避するために、各プッシュ前にリンティングとテストを実行するpre-pushフックをインストールできます:
make install-hooks
これにより、各プッシュ前に make fmt-check lint test を実行する .githooks/ 内のフックを git が使用するように設定されます。