Cloudflare Tunnelで固定URL(独自ドメイン)を設定する

公開日:
目次

Cloudflare Tunnelを使ってローカルサーバーを公開する際、毎回URLが変わるのが不便だったので固定URLを設定しました。備忘録として残します。

Cloudflare Tunnel利用時の問題

cloudflared tunnel run --url http://localhost:3000

上記コマンドでCloudflare Tunnelを起動すると、毎回異なるランダムなサブドメインが割り当てられます[1]

また、URLを知っていれば誰でもアクセスできてしまうため、サクッと使う以外ではセキュリティ上の問題もあります。

解決策

CLIでトンネルを設定することで、独自ドメインのサブドメインで固定URLアクセスが可能になります。無料プランで利用できます。

固定URLの設定

cloudflaredのインストール

cloudflaredをインストールします(Macの場合)。

brew install cloudflare/cloudflare/cloudflared

認証

Cloudflareに認証します。

cloudflared tunnel login

ブラウザが開き、Cloudflareに登録されているドメイン(ゾーン)の一覧が表示されます。

Image from Gyazo

トンネルを設定したいドメインを選択します。

Image from Gyazo

認証が完了すると、~/.cloudflared/cert.pem に証明書が保存されます。

トンネルの作成

トンネルを作成します。

cloudflared tunnel create claude-code-ui

トンネルIDが表示されるので、メモしておきます。

設定ファイルの作成

~/.cloudflared/config.yml を作成します。

tunnel: <トンネルID>
credentials-file: /Users/<ユーザー名>/.cloudflared/<トンネルID>.json

ingress:
  - hostname: claude-ui.yourdomain.com
    service: http://localhost:3001
  - service: http_status:404
  • <トンネルID>: 先ほど作成したトンネルのID
  • <ユーザー名>: 自分のユーザー名
  • claude-ui.yourdomain.com: 使いたいサブドメインとドメイン

DNSレコードの追加

トンネルをドメインに紐付けます。

cloudflared tunnel route dns claude-code-ui claude-ui.yourdomain.com

これでDNSレコードが自動的に追加されます。

トンネルの起動

トンネルを起動します。

cloudflared tunnel run claude-code-ui

https://claude-ui.yourdomain.com にアクセスすると、ローカルのClaude Code UIが表示されます。

サービスとして登録(任意)

PC起動時に自動で起動したい場合は、サービスとして登録できます。

cloudflared service install
sudo launchctl start com.cloudflare.cloudflared

これでPC起動時に自動でトンネルが接続されます。

使用上の留意点

この設定を使う際は、以下の点に注意してください。

  • 独自ドメインが必要:Cloudflareに登録済みのドメインが必要です
  • サービス化cloudflared service install で登録すると、PC起動時に自動接続されます

認証を追加する

固定URLだけでは、URLを知っていれば誰でもアクセスできてしまいます。Cloudflare Accessを使って認証を追加する方法は、下記の記事を参照してください。

脚注
  1. Cloudflare Tunnelを使って自宅サーバーをポート開放せずに公開する ↩︎