6.7 KiB
6.7 KiB
Cloudflare Tunnel セットアップガイド
概要
Tailscale Funnelの不安定性を解決するため、Cloudflare Tunnelを使用してSynology上のサービスを安全に公開します。
メリット
- ✅ 完全無料(Cloudflare無料プラン)
- ✅ 99.99%稼働率(Cloudflareのグローバルインフラ)
- ✅ 自動HTTPS(SSL証明書不要)
- ✅ DDoS保護付き
- ✅ Synology再起動時も自動再接続
- ✅ 知人に展開しても安心の安定性
前提条件
- Cloudflareアカウント(無料)
- ドメイン名(既存ドメインまたはCloudflare Pagesの無料ドメイン)
- Synology Docker環境
Step 1: Cloudflareアカウントとドメイン設定
1-1. Cloudflareアカウント作成
https://dash.cloudflare.com/sign-up
1-2. ドメイン追加
既存ドメインをCloudflareに追加、またはCloudflare Pagesで無料ドメイン取得
既存ドメインの場合:
- Cloudflareダッシュボード → 「Add a Site」
- ドメイン入力(例: example.com)
- ネームサーバーをCloudflareに変更(ドメイン registrarで設定)
無料ドメインの場合:
- Cloudflare Pages → 「Create a project」
- 適当なプロジェクト作成 →
xxx.pages.devが発行される - このサブドメインを使用可能
Step 2: Cloudflare Tunnel作成
2-1. Zero Trustダッシュボードへ移動
https://one.dash.cloudflare.com/
2-2. トンネル作成
- 左メニュー → 「Access」 → 「Tunnels」
- 「Create a tunnel」をクリック
- トンネル名を入力(例:
posimai-synology) - 「Save tunnel」
2-3. トークン取得
トンネル作成後、トンネルトークンが表示されます(後で使用)
eyJhIjoiNzQ5YmJhMGVhZjU5NDhhNWFkZGM3MTk3YTcxNTRmOGQiLCJ0IjoiOGE5YzEyMzQtNTY3OC05MGFiLWNkZWYtMTIzNDU2Nzg5MGFiIiwicyI6Ik5UQTBPVEl4TXpRdE5qY3lNUzAwTmpkbExXRTBNRFF0WkRJNU1qWTRNREkyWWpFMSJ9
このトークンをメモ(次のステップで使用)
Step 3: Synology Dockerでトンネル起動
3-1. SSH接続
ssh admin@192.168.x.x
3-2. Dockerコンテナ起動
sudo docker run -d \
--name cloudflared-tunnel \
--restart=unless-stopped \
cloudflare/cloudflared:latest tunnel \
--no-autoupdate run \
--token eyJhIjoiNzQ5YmJhMGVhZjU5NDhhNWFkZGM3MTk3YTcxNTRmOGQiLCJ0IjoiOGE5YzEyMzQtNTY3OC05MGFiLWNkZWYtMTIzNDU2Nzg5MGFiIiwicyI6Ik5UQTBPVEl4TXpRdE5qY3lNUzAwTmpkbExXRTBNRFF0WkRJNU1qWTRNREkyWWpFMSJ9
注意: --token の後ろに先ほどメモしたトークンを貼り付け
3-3. 起動確認
sudo docker ps | grep cloudflared
以下のように表示されればOK:
CONTAINER ID IMAGE STATUS
abc123def456 cloudflare/cloudflared:latest Up 2 minutes
Step 4: Public Hostname設定(サービス公開)
4-1. Cloudflare Zero Trustダッシュボードに戻る
https://one.dash.cloudflare.com/ → 「Tunnels」 → 先ほど作成したトンネルをクリック
4-2. Public Hostnamesタブ → 「Add a public hostname」
例1: Posimai Brain API
| 項目 | 設定値 |
|---|---|
| Subdomain | posimai-brain |
| Domain | example.com(あなたのドメイン) |
| Path | (空欄) |
| Type | HTTP |
| URL | localhost:8080(Synology上のPosimai Brain APIポート) |
→ アクセス先: https://posimai-brain.example.com
例2: Gitea
| 項目 | 設定値 |
|---|---|
| Subdomain | gitea |
| Domain | example.com |
| Path | (空欄) |
| Type | HTTP |
| URL | localhost:3000 |
→ アクセス先: https://gitea.example.com
例3: Posimai API(Flask)
| 項目 | 設定値 |
|---|---|
| Subdomain | posimai-api |
| Domain | example.com |
| Path | (空欄) |
| Type | HTTP |
| URL | localhost:5000 |
→ アクセス先: https://posimai-api.example.com
4-3. 保存して完了
「Save hostname」をクリック
Step 5: 動作確認
5-1. ブラウザでアクセス
https://posimai-brain.example.com/health
正常にレスポンスが返ればOK!
5-2. Posimai Brain UIのAPI URLを変更
修正前:
const SYNOLOGY_API = 'https://posimai-lab.tail72e846.ts.net/brain/api';
修正後:
const SYNOLOGY_API = 'https://posimai-brain.example.com';
5-3. Vercel再デプロイ
cd /c/Users/maita/posimai-project/posimai-brain
vercel --prod
Step 6: 複数サービスの公開(オプション)
同じトンネルで複数サービスを公開可能:
| サービス | URL | Synologyポート |
|---|---|---|
| Posimai Brain API | https://posimai-brain.example.com |
localhost:8080 |
| Gitea | https://gitea.example.com |
localhost:3000 |
| Posimai API (Flask) | https://posimai-api.example.com |
localhost:5000 |
| Ponshu Room Lite AI Proxy | https://ponshu-ai.example.com |
localhost:8000 |
すべて同じトンネルで公開可能(追加コストなし)
トラブルシューティング
Q1. トンネルが起動しない
# ログ確認
sudo docker logs cloudflared-tunnel
# 再起動
sudo docker restart cloudflared-tunnel
Q2. 502 Bad Gateway
- Synology上のサービスが起動しているか確認
- ポート番号が正しいか確認(
localhost:8080など)
Q3. SSL証明書エラー
- Cloudflareが自動でHTTPS証明書を発行するため、特に設定不要
- ドメインのDNSがCloudflareを向いているか確認
Tailscale Funnelからの移行手順
移行前の確認
# 現在のTailscale Funnel設定を確認
tailscale funnel status
移行手順
- Cloudflare Tunnel設定完了
- Posimai Brain UIのAPI URL変更(上記参照)
- Vercel再デプロイ
- 動作確認後、Tailscale Funnelを停止
tailscale funnel off
ロールバック方法
万が一問題があれば、元のTailscale Funnel設定に戻せます:
tailscale funnel on 8080
まとめ
メリット
- ✅ Synology再起動時も自動再接続(
--restart=unless-stopped) - ✅ 無料で複数サービス公開可能
- ✅ Cloudflareの高速CDN経由でアクセス
- ✅ DDoS保護、WAF(Web Application Firewall)付き
- ✅ 知人に展開しても安心の安定性
デメリット
- Cloudflareアカウント設定が必要(初回のみ1時間程度)
- ドメイン設定が必要(既存ドメインまたは無料ドメイン)
次のステップ
- Cloudflareアカウント作成
- トンネルトークン取得
- Synology Dockerで起動
- 動作確認
- Posimai Brain UI修正 & 再デプロイ
不明点があればサポートします!