ponshu-room-lite/docs/TAILSCALE_FUNNEL_EXPLAINED.md

233 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tailscale Funnel 完全図解
## 🎯 一言で言うと
**「Tailscaleを入れていない人でも、あなたの自宅サーバーにHTTPSでアクセスできるようにする機能」**
---
## 📊 通常のTailscaleとFunnelの違い
### **通常のTailscaleプライベートVPN**
```
┌─────────────────────────────────────────────────────┐
│ Tailscale ネットワークTailnet- 閉じた専用線 │
│ │
│ [あなたのPC] ←────────→ [Synology] │
│ Tailscale導入済み Tailscale導入済み │
│ │
│ [娘さんのPC] ←────────→ [Synology] │
│ Tailscale導入済み Tailscale導入済み │
│ │
└─────────────────────────────────────────────────────┘
✅ 安全: Tailscaleを入れた人だけが接続可能
❌ 制限: 知人や外部からはアクセス不可
```
---
### **Tailscale Funnel一部を公開**
```
┌───────────────────── インターネット ─────────────────────┐
│ │
│ [一般ユーザー] [知人] [Tailscale未導入の共同開発者] │
│ │ │ │ │
│ └────────────┴──────────────┘ │
│ │ │
│ │ HTTPS │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Tailscale Relay │ ← Tailscaleの中継サーバー│
│ │ (Funnel入口) │ (あなたが管理する必要なし)
│ └─────────────────────┘ │
│ │ │
│ │ 暗号化トンネル (WireGuard) │
│ │ │
└────────────────────┼─────────────────────────────────────┘
┌─────────────┐
│ Synology │ ← あなたの自宅
│ (Funnel有効)│
└─────────────┘
├── :8080 → Posimai Brain API
├── :3000 → Gitea
└── :5000 → Posimai API
```
**公開URL:**
```
https://posimai-lab.tail72e846.ts.net
```
✅ 利点: Tailscale未導入の人でもアクセス可能
⚠️ 注意: **認証APIキーを必ず実装**しないと全世界公開
---
## 🔒 セキュリティの仕組み
### **Geminiの警告は正しい:**
> Funnelは「全世界」に公開されるため、認証パスワードやAPIキーをしっかりかけていないと、誰でもあなたのサーバーを覗けてしまいます。
### **現在の保護レイヤー:**
```
[一般ユーザー]
│ ① HTTPSで接続暗号化
[Tailscale Relay]
│ ② WireGuardトンネル暗号化
[Synology]
│ ③ APIキー認証 ← ★これが最後の砦★
[Posimai Brain API]
```
**重要:** ①②は「通信の暗号化」であり、**「誰がアクセスできるか」は制御していない**
**③のAPIキー認証が必須**
---
## 🌐 Funnel vs Cloudflare Tunnel vs VPS比較
| 項目 | Tailscale Funnel | Cloudflare Tunnel | VPS + Nginx |
|------|------------------|-------------------|-------------|
| **クラウド依存** | 中Relayのみ依存 | 高Cloudflare依存 | 低VPS管理 |
| **コスト** | 無料 | 無料 | $3-5/月 |
| **安定性** | 中Relay経由 | 高99.99% | 高VPS次第 |
| **設定難易度** | 易 | 中 | 高 |
| **データ経路** | Tailscale Relay経由 | Cloudflare経由 | VPS経由 |
| **プライバシー** | 中Tailscale社のRelay通過 | 低Cloudflare通過 | 高自分のVPS |
---
## 🤔 「クラウド依存を避ける」という方針との整合性
### **Tailscale Funnelの実態:**
```
あなたのデータの流れ:
[知人のブラウザ]
[Tailscale社のRelay] ← ★ここを通る★
[あなたのSynology]
```
**事実:**
- ✅ データは暗号化されているTailscale社でも読めない
- ⚠️ Tailscale社のRelayサーバーを経由しているクラウド依存
- ⚠️ Tailscale社が倒産/サービス停止したら使えなくなる
### **完全なセルフホストとは言えない理由:**
Funnelは**Tailscale社のインフラに依存**しています。
Cloudflare Tunnelと同じく「第三者のRelayを使う」点では変わりません。
---
## 🏆 本当に完全セルフホストするなら
### **方法1: VPS + Reverse Proxy最も純粋なセルフホスト**
```
[知人] → [あなたが借りたVPS] → [Tailscale P2P] → [Synology]
★自分で管理★
```
**メリット:**
- ✅ 完全に自分の管理下
- ✅ VPSはあなたが選んだ業者Vultr, Hetznerなど
- ✅ Tailscaleはプライベートネットワークのみ使用Funnel不使用
**デメリット:**
- 月$3-5のコスト
- VPS管理の手間
---
### **方法2: ダイナミックDNS + Let's Encrypt完全無料**
```
[知人] → [DDNSドメイン] → [自宅ルーター:443] → [Synology]
```
**メリット:**
- ✅ 完全無料
- ✅ クラウド依存なし
**デメリット:**
- ❌ ルーターのポート開放が必要(セキュリティリスク)
- ❌ グローバルIPが変わると接続できなくなる
- ❌ 二重ルーター環境では動作しない
---
## 📊 まとめ: Funnelは「妥協案」
| 方式 | クラウド依存度 | セキュリティ | コスト | 推奨度 |
|------|---------------|-------------|--------|--------|
| **Tailscale Funnel** | ⭐⭐ 中 | ⭐⭐⭐⭐ 高 | 無料 | ⭐⭐⭐⭐ |
| **Cloudflare Tunnel** | ⭐⭐⭐ 高 | ⭐⭐⭐⭐⭐ 最高 | 無料 | ⭐⭐⭐ |
| **VPS + Reverse Proxy** | ⭐ 低 | ⭐⭐⭐⭐ 高 | $3-5/月 | ⭐⭐⭐⭐⭐ |
| **DDNS + ポート開放** | なし | ⭐⭐ 低 | 無料 | ⭐ |
---
## 🎯 あなたの方針に対する推奨
### **現状のTailscale Funnel:**
- ✅ APIキー認証で保護されている
- ✅ 無料で使える
- ⚠️ Tailscale社のRelayに依存完全セルフホストではない
- ⚠️ 再起動時に手動復旧が必要Docker Composeで解決可能
### **完全セルフホストにこだわるなら:**
**VPS + Reverse Proxy方式月$3-5** を推奨
```yaml
# VPS上の設定例Nginx Reverse Proxy
server {
listen 443 ssl;
server_name posimai-brain.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/posimai-brain.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/posimai-brain.yourdomain.com/privkey.pem;
location / {
proxy_pass http://100.x.x.x:8080; # TailscaleのプライベートIPアドレス
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
**この方式なら:**
- ✅ VPSは自分で選んだ業者Vultr, Hetzner等
- ✅ TailscaleはプライベートネットワークのみFunnel不使用
- ✅ VPSが死んでも別のVPSに30分で移行可能
- ✅ 完全に自分の管理下
---
## 結論
**Tailscale Funnelは「便利だが、完全セルフホストではない」**
- Cloudflare Tunnelと同じく、第三者のRelayに依存
- 完全セルフホストにこだわるなら → **VPS + Reverse Proxy**
- コストを抑えて手軽に使いたい → **Tailscale Funnel現状維持 + Docker永続化**
どちらを選びますか?