• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

Cloudflare Tunnel

date: 2025-08-23 excerpt: Cloudflare Tunnelの設定方法と使い方

tag: CloudflareTunnel設定方法使い方


Cloudflare Tunnelの設定方法と使い方

概要

  • Cloudflare Tunnel(cloudflared)を用いて、サーバーの特定のポートを安全にインターネットへ公開できる
  • 事前にCloudflareアカウントとそこで登録しているドメインが必要

トンネルの作成

  • example.com というドメインを例に、トンネルを作成する
# ブラウザが開くので Cloudflare アカウントで認証(example.com のゾーンに紐づく)
$ cloudflared tunnel login

# トンネル作成(名前はお好みで)
$ cloudflared tunnel create my-tunnel

# 返ってくる Tunnel UUID を控える(例: a1b2c3...)
# 資格情報 JSON は ~/.cloudflared/<UUID>.json 

DNS ルーティングの設定

  • DNSルーティングの設定は、作成したトンネルを実際のドメイン名と紐づけるために必要
  • ユーザーは覚えやすいドメイン名(例:my-server.example.com)でサーバーにアクセスできる
$ cloudflared tunnel route dns my-tunnel my-server.example.com
$ cloudflared tunnel route dns my-tunnel ssh.my-server.example.com

設定ファイルの作成

~/.cloudflared/config.yml

# ~/.cloudflared/config.yml
tunnel: <上で控えた UUID>
credentials-file: /home/<あなたのユーザー>/.cloudflared/<UUID>.json

ingress:
  # HTTPS の例: my-server.example.com をこのサーバの HTTP(8080) に公開
  - hostname: my-server.example.com
    service: http://localhost:8080

  # SSH の例: ssh.my-server.example.com をこのサーバの 22 番へ
  - hostname: ssh.my-server.example.com
    service: ssh://localhost:22

  # フォールバック
  - service: http_status:404

トンネルの動作確認とサービス化

手動実行

$ cloudflared tunnel run my-tunnel

サービス化(Linux)

# 設定を読ませてサービス化(rootで実行)
$ sudo cloudflared --config ~/.cloudflared/config.yml service install

# 起動 & 自動起動
$ sudo systemctl start cloudflared
$ sudo systemctl enable cloudflared
$ sudo systemctl status cloudflared

サービス化(macOS)

$ sudo cloudflared service install

SSH 接続の例

$ ssh -vv \
  -o ProxyCommand='cloudflared access ssh --hostname ssh.my-server.example.com' \
  -i ~/.ssh/id_ed25519 \
  username@ssh.my-server.example.com


CloudflareTunnel設定方法使い方 Share Tweet