概要
NordVPN の Meshnet を使ってノート PC からメインのデスクトップ PC へアクセスしていたが、
1週間ほどで接続が不安定になり、再起動しないと繋がらないことが頻発した。
そこで代替を探し、Cloudflare Tunnel にたどり着いた。
構成
常時稼働しているマシンに cloudflared(Tunnel)を構築し、出先の端末には Cloudflare WARP をインストールする。
Cloudflare の設定で、自宅ネットワークの IP(CIDR)をアクセス可能に設定する。
graph TD
subgraph Client_Side [外出先 Client Side]
Mobile[端末: ノートPC/スマホ]
WARP[Cloudflare WARP Client]
Mobile --> WARP
end
subgraph Cloud_Network [Cloudflare Edge]
CF_Gate[Cloudflare Zero Trust / Gateway]
WARP -->|1.1.1.1 / Tunnel| CF_Gate
end
subgraph Home_Network [自宅ネットワーク]
direction TB
Server[常時稼働マシン]
Tunnel[cloudflared / Tunnel構成]
subgraph Local_Devices [ローカルデバイス]
Target1[PC/NAS 192.168.1.x]
Target2[IoT機器 192.168.1.y]
end
CF_Gate <-->|コネクタ接続| Tunnel
Tunnel --- Server
Server -.->|ルーティング| Target1
Server -.->|ルーティング| Target2
end
style CF_Gate fill:#f38020,stroke:#333,stroke-width:2px,color:#fff
style Tunnel fill:#051094,stroke:#333,stroke-width:2px,color:#fff設定
ラズパイのセットアップ
手順はシンプルで、Tunnel をラズパイにインストールして認証するだけ。
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.debapt install ./cloudflared-linux-amd64.debCUI 環境では別のマシンのブラウザで認証を行う必要がある。
cloudflared tunnel loginコマンド実行後に表示される URL を別マシンのブラウザで開いて認証を行う。
詳細な設定は Cloudflare 側で行う。
androidセットアップ
Android では Cloudflare One のアプリをインストールして認証する。
スイッチをオンにすると Tunnel に接続され、自宅ネットワークの IP アドレスで各機器へアクセスできるようになる。
windowsセットアップ
Windows のクライアント側は注意が必要だ。
設定 > アカウント を開き、右下の Zero Trust アカウントで「ログイン」を選んでブラウザで認証しないと、Tunnel チームに参加したことにならない。
これを行わなくても見た目上は VPN がオンになっているように見える点に注意する。
cloudflare tunnelの設定


Split tunnel の設定でアクセスさせたい CIDR を指定する。
ラズパイが Cloudflare と CIDR ネットワークの橋渡しとなり、CIDR 配下のすべての機器にアクセスできるようになる。
IP アドレスを直接指定してアクセスできた。
余談:過去のopen vpn環境
TP-Link のルーター(AC1200)を使っているが、選んだ理由のひとつに DDNS を無料で使える点があった。購入当初の回線では集合住宅でもグローバル IP が個別に割り当てられており、DDNS を紐付けてルーターの OpenVPN で外部から自宅へ接続できた。
しかし現在の契約回線は共用 IP になっており、DDNS に割り当てられるグローバル IP でないため、DDNS+VPN の構成ができなくなっていた。
長らく NordVPN が代替手段として機能していたが、Cloudflare によってこれらの問題が解消され、TP-Link の DDNS がいらない子になっちゃった・・・
cloudflare tunnelの評価
接続速度
Meshnet よりずっと速い!
ただし Tailscale よりは若干遅いかもしれない。
記事のプレビュー用にローカルマシンで開発サーバーを立てているが、画像の読み込み速度も圧倒的に改善した。
ローカルのマシンに LLM を置き、出先からチャットを送ると、NordVPN の Meshnet では応答に数十秒〜1分以上かかったり、ひどいとタイムアウトしていたが、数秒で返ってくるようになった。
安定性
現状ではネットワーク切断はほとんど発生していない。
さすがにブレーカーが落ちれば対処できないが、マシンがハングしたときはスマートプラグで強制的に再起動すれば大抵何とかなるだろう。
導入性
Android は専用アプリが用意されているので導入は容易だ。
Windows はやや癖がある。マニュアル通りに進めれば設定できることが多いが、トラブルシューティングでは原因の切り分けができないと対処が難しい。
類似サービスとの比較表
| Cloudflare Tunnel | Tailscale | NordVPN Meshnet | |
|---|---|---|---|
| 導入難易度 | 導入自体は楽だがトラブルシュートは難しい | 楽 | 楽 |
| 速度 | 早い | 最速 | 激遅(他の十数倍は遅い) |
| 安定性 | 最強 | 数分で切れる | ある程度安定だが、数日経つと繋がらなくなることがある |
| 対応可能台数 | 無制限 | 100 | 10 |
| 柔軟性 | 高 | 高 | 低 |
総評
cloudflareの仕様に縛り付けられてしまうが、性能は優秀。
昔は少なからずの費用がかかっていたvpnによる自宅ネットへの接続が無料できるのはありがたいところではある。
反面、cloudflareはホスティングやらサーバレスやらも無料で提供しているものが多く、利用者が増えたり仕様変更が発生したりで、今後有料化していく可能性も考えられる。
cloudflareだけに依存しないよう、他のインフラサービスについても引き続き目を光らせておこう。