iPhoneからセルフホステッドにアクセスする最高に簡単な方法
2025年は日本でも「かんたんな」セルフホステッドが広まり始めると思う。ごく少数の大企業がサービスを支配することに日本人は世界でも寛容なほうなのだけど、この数年の断続的なサブスク値上げについていけなかったり、サービスは無料でも生成AI時代の「クラウドにあげたコンテンツはプラットフォーマーがAIの学習に使っちゃう」ことなどから、データを外にあずけない方法はないかと探すひとが増えるかなぁと。
というわけで「手もとにWindowsパソコンがあれば30分でセルフホステッドが始められる方法」の続き。
前回は「WindowsでアプリとしてUbuntuを動かし、CasaOSでセルフホステッドのクラウドサービスを始める」内容だった。ものすごく簡単なのだけど、そのクラウドサービスにアクセスできるのは、同じパソコンに同居するWindowsだけという「強い制約と誓約」のもと だった。
この記事では、CasaOSのクラウドサービスに、iPhoneなどどんなデバイスからでも、いつでも、どこからでもアクセスできるようにする方法をまとめてみる。
今回はネットワークまわりのお話になるので、前提知識として「そもそもWindowsのWSL(Windows Subsystem for Linux:Linux用Windowsサブシステム)ってどんなものなのか」に世界一簡単に触れておく。
WSLは2種類ある。WSLの「1」と「2」だ。WSL1では、WindowsのなかでLinuxが動き、そのために「Linux用のサブシステム」がWindowsカーネルで動いていた。
これがWSL2ではがらっと変わる。別物になった。WSLをインストールすると、ハードウェアを仮想化するハイパーバイザーでLinuxが動く。そして、ユーザーが意識することはまずないが、Windowsさえも同じハイパーバイザー上で動くように再構成される。「同じパソコンで、WindowsとLinuxのふたつのOSが同時に、ハードウェアをうまく共有しながら動いている」わけだ。
とはいってもバラバラにふるまっているのではなく、WSL2では、WindowsからLinuxを、逆にLinuxからWindowsを簡単に操作できる。それぞれがお互いのコマンドを実行できるし、WindowsからLinuxのファイルにアクセスしたければエクスプローラーでペンギンをクリックするだけだし、LinuxからWindowsのCドライブにあるデータにアクセスしたければ、ただ /mnt/c/data/downloads などを指定するだけでOKだ。
ただし、WSL2のLinuxはそのままでインターネットや自宅のネットワークにアクセスできるが、逆はできない。つまり、他のデバイスからWSL2のLinuxのIPアドレスを指定しても「そんなアドレスは存在しない」とされる。例外は、Linuxと同居するWindowsだけだ。
このネットワークの仕様は、WSL2のLinuxを開発などに使うのであれば問題にならない。むしろネットワークのセキュリティにいちいち魂削ることもないので便利このうえないのだけど、セルフホステッドで「他のデバイスからアクセスしたい」場合には問題となる。
それではと、AIに「WSLのLinuxに外からつなぎたい」と問題解決をおねだりすると、それっぽい回答をまとめてくれる。が、これは大変だ。それになんというか、noteではなくってZennとかQiitaとかのテリトリーだ。
また、知っておきたいのは「WSLのネットワーク仕様はわりところころ変わる」こと。WSLそのものがアップデートでどんどん使いやすくなっていく一方で、切り捨てられていく仕組みもある。代表的な例がまさにネットワークまわりの「2023年に試験的に実装されたWSL2のブリッジモードが、2024年には廃止がプランされた」ことだろう。
ともかく、実現したいことははっきりしている。iPhoneなどから、いつでも、どこからでもCasaOSのアプリにアクセスできること。もちろん、手間がかからないシンプルな方法がよい。インストールのときだけでなく、2年、3年と何も考えずに使い続けたいわけだ。そして、その方法によって、もっと便利になることがあれば最高だ(エクスペリエンスの向上、と言うか)。
というわけで、Tailscaleの出番。
Tailscaleは、ざっくりいうと「いろんなデバイスやアプリ同士のアクセスを、設定の手間ゼロで、とんでもなくシンプルにしてくれるアプリ」だ。リモートワークのような使い方はもちろんとして、セルフホステッドでも欠かせない役割を担っている。「知っているひとはみんな絶賛」で、技術的な解説記事も多い。
よくある自宅のインターネット接続環境はこんな感じだろう。近ごろは、特にひとり暮らしではフレッツやソフトバンク光などのサービスを契約しないで、「スマホでギガ使うだけ」も増えているけど、セルフホステッドでは対象にしない。
Tailscaleをインストールすると、それだけで「Tailscaleをオン」にしたデバイス同士が「自宅内のWi-Fiだろうが有線LANだろうが外から5Gだろうが」お構いなしにアクセスできるようになる。ルーターの設定はもちろん、Windowsなどデバイス側の設定変更もゼロだ。しかも、インターネットへの接続もそのままで、速度が遅くなることもない。そのうえ、個人利用はタダ。とにかくすごい(語彙)。
Tailscaleを使うのは簡単だ。手順は大きくわけてふたつで、Tailscaleアプリを各デバイスにインストールすること、その途中でTailscaleのアカウントを作る(=自分だけのプライベートなTailnetを持つ)ことだけだ。
では、まずは一番面倒なCasaOS(WSL2 Ubuntu)にTailscaleをインストールしてみる。実はCasaOSのアプリストアにもTailscaleがあるのだけど、こっちは簡単なようでいて全工程をみると手間がかかった。よって、以降の手順がおすすめだ。
TailscaleのLinux版ダウンロードサイトは こちら だ。
ん? サイトにはダウンロードのモジュールなどはなく「一行コマンドでインストールせよ」とだけある。ので、表示されているコマンドをWSL2 UbuntuにコピペしてEnterだ。そして、インストール後に画面に表示されている「sudo tailescale up」をコピペで実行し、Tailscaleのログイン/アカウント登録用サイトに行ってみる。
一行コマンドコピペだけでTailscaleのインストールはすでに完了している。また、なにもせずに、CasaOS(Ubuntu)が起動していればTailscaleも起動しているようになっている。
で、Tailscaleアカウントの登録だ。これも独自の認証を受けたり、なにか個人情報を明け渡したりする必要はなく、とても簡単。簡単すぎてスクショもいらないくらい。
これだけでCasaOSがTailnetに属し、独自のアドレスを持った。このアドレスは、Wi-Fiと有線LANとを切り替えたりしても同じままで便利だ。そして、同じようにTailscaleをインストールしてオンにしたiPhoneやパソコンでこのアドレスを指定することで、いつでも、どこからでもアクセスできるようになった。
とまあ、一番面倒なUbuntuへのインストールさえ簡単なのでiPhoneや同居WindowsへのTailscaleのインストール手順は省く。そう、同居Windowsは同じパソコンにいるけど、前述のようにパソコンのなかできっちり分かれているので、TailscaleではCasaOSとは別のマシンとして扱われる(扱ってもらえる)。よって、Windows用のTailsacleを入れておくのがよい。
最後に一点だけおせっかいを。いわゆる「おすすめ設定」というやつだ。この設定をしなくても当面は困ることはないので、セルフホステッド続けてみよっかなーとなってから、気が向いたときにいじるのがよいと思う。
Tailscaleは本当に便利で、セルフホステッドではほかにもいろいろお役立ちしてくれる。たとえば、独自ドメインをもっていればCasaOSに独自ドメインでアクセスできるようになるし(http://apps.dokuji-domain.com みたいな)、広告ブロックをTailscaleのDNSに設定することで「Tailscaleのオンのときはあらゆる広告がブロックされる」ようにもできる。このあたりはまた別の記事にまとめてみる。