Open6

Cloudflare Tunnelの環境構築メモ

だーら(Flamers / Memotia)だーら(Flamers / Memotia)

概要

  • localhostの環境を、URLで一般に公開したい
    • 開発中に、例えばモバイルアプリのビルドが参照するURLをローカルにするなど。
だーら(Flamers / Memotia)だーら(Flamers / Memotia)

Tunnelの作成

  • Tunnelを作成する。
> cloudflared tunnel create tunnel-test
Tunnel credentials written to /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.

Created tunnel tunnel-test with id xxxxxxxxxxxxxxxxxxxxxxxxx
  • 設定ファイルを作成
touch ~/.cloudflared/config.yaml
だーら(Flamers / Memotia)だーら(Flamers / Memotia)

サブドメイン無しで設定

  • ymlファイルへの設定
~/.cloudflared/config.yaml
url: http://localhost:7001
tunnel: xxxxxxxxxxxxxxxxxxxxxxxxx
credentials-file: /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json
  • CNAME recordの追加
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx testdomain.net
2024-03-30T05:52:18Z INF Added CNAME testdomain.net which will route to this tunnel tunnelID=xxxxxxxxxxxxxxxxxxxxxxxxx
  • トンネルの確立
cloudflared tunnel run

開発環境にアクセスできるように設定

  • 例えばRailsを利用している場合には、development.rbの最後に以下のように記述
config.hosts << 'testdomain.net'
だーら(Flamers / Memotia)だーら(Flamers / Memotia)

サブドメインを利用する設定

  • ymlファイルの設定
~/.cloudflared/config.yaml
tunnel: xxxxxxxxxxxxxxxxxxxxxxxxx
credentials-file: /Users/name/.cloudflared/xxxxxxxxxxxxxxxxxxxxxxxxx.json

ingress:
  - hostname: sub.testdomain.net
    service: http://localhost:7001
  - service: http_status:404
  • dnsの設定
    • なんどかうまくいかなかったため、重複して設定したり設定を消したりした。以下のどちらでうまくいったかは不明。
    • cloudflareの管理画面から、DNSの設定を削除したりしつつ。。。
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx sub
または、
> cloudflared tunnel route dns xxxxxxxxxxxxxxxxxxxxxxxxx sub.testdomain.net
  • トンネルの確立
cloudflared tunnel run