ZimaOSユーザーは、アプリページに「サービスを利用できません」と表示され、スマートフォンからホームサーバーのサービスに接続できなかったため、初回起動後にTailscaleが失敗したと考えていました。しかし、コンテナの診断結果は異なっていました。Tailscaleは実行中で、デバイスは認証済みであり、状態ディレクトリとトンネルのマウントも存在していました。
確認された問題は、スマートフォンから使用していたアドレスでした。ユーザーはサブネットルーティングを設定せずに、通常のホームLANアドレスへ接続しようとしていました。ZimaOSデバイスのTailscale 100.x.x.x アドレスで接続できました。
Tailscaleコンテナは失敗していなかった
当初の症状からは再起動後にコンテナが停止したように見えましたが、収集された状態から次のことが確認されました。
- コンテナのステータスは実行中で、終了コードは0でした。
- Tailscaleの状態はStartingからRunningへ移行しました。
- マシンはユーザーのtailnetで認証済みでした。
- 永続状態ディレクトリもコンテナにマッピングされていました。
- Tailscaleに必要なTUNデバイスもコンテナにマッピングされていました。
- デバイスはTailscaleのIPv4アドレスを取得し、ピアを認識できていました。
この証拠により、ZimaOSのアプリページまたはWebインターフェースに表示されたメッセージと、Tailscaleデーモン自体の状態とを切り分けることができました。
最初の診断で「Permission Denied」と表示された理由
ターミナルセッションでは通常のZimaOSユーザーを使用していました。最初のDocker一覧表示は昇格した権限で実行されましたが、その後のコマンドは権限なしでDockerソケットにアクセスしようとしたため、権限エラーが返されました。また、フォーラムからコピーした曲線引用符により、一部のコマンド置換が正しく解釈されませんでした。
これらの権限エラーは診断セッションについて説明したものであり、Tailscaleの実行時障害ではありません。適切な権限で後から取得した出力により、コンテナが正常であることが示されました。
ホームLANアドレスは自動的にTailscaleアドレスにはならない
次のようなアドレス 10.0.0.93 はホームLANに属しています。同じtailnetにリモート接続しているスマートフォンが、すべてのプライベートLANアドレスへの経路を自動的に取得するわけではありません。
Tailscaleは各ノードに固有のアドレスを割り当てます。通常は100.x.x.xの範囲です。Tailscaleの公式IPアドレスドキュメントでは、これらのアドレスがtailnet内のデバイスを識別し、通常のLANアドレスとは別のものであると説明されています。
接続に成功した方法
回答者は、ZimaOSノードのTailscale IPとアプリケーション固有のポートを使ってアプリケーションに接続するようユーザーに案内しました。
http://TAILSCALE-IP:APP-PORT
たとえば、ポート 8096 次のような形式のURLを使用します。
http://100.x.x.x:8096
スマートフォンも同じtailnetにサインインし、Tailscaleに接続中である必要があります。ユーザーはこのアドレスで接続できたことを確認し、Tailscale自体が正常に機能していることが明らかになりました。
サブネットルーティングが必要な場合
既存のLANアドレスを使ってデバイスに接続することが目的の場合、たとえば 10.0.0.x—そのネットワーク上のデバイスがLANサブネットをルートとして広告し、そのルートをテールネットの設定に従って承認する必要があります。
これは、ZimaOSホスト自体のTailscale IPを通じて直接アクセスする場合とは異なる構成です。通常のLANアドレスがリモートで機能することを期待する前に、Tailscaleの公式サブネットルーターのドキュメントに従ってください。
アプリページに「サービスを利用できません」と表示されることがある理由
Webインターフェースの可用性チェックは、ネットワークデーモンが実行中でも失敗することがあります。元のケースでは、実行中の状態、テールネット認証の成功、割り当てられたTailscale IP、表示されたピア、そしてリモートサービスへの接続成功が決定的な証拠でした。
ランダムにアプリのポートを変更したり、Tailscaleの状態を削除したり、コンテナを繰り返し再インストールしたりしても、誤った接続先アドレスは解決しません。正常に動作しているIDをリセットする前に、デーモンの健全性と接続方法を確認してください。
正常な接続が遅く感じられる理由
最終的な回答では、接続が直接のピアツーピア経路ではなく、DERPリレーを使用している可能性が示されました。中継されたTailscaleトラフィックは正常に機能していても、ネットワーク、ルーター、利用可能なリレーリージョンによっては、スループットが低下したり、遅延が増加したりすることがあります。
遅いというだけでは、コンテナに問題があるとは限りません。まず接続が機能しているか、Tailscaleが直接経路または中継経路のどちらを報告しているかを確認し、パフォーマンスが重要な場合はNATとファイアウォールの動作を調査してください。
より安全な診断手順
- アプリページのステータスだけに頼らず、Tailscaleコンテナが実行中か確認してください。
- ZimaOSノードが、スマートフォンと同じテールネット上で承認済みかつオンラインとして表示されていることを確認してください。
- ZimaOSノードのTailscale
100.x.x.xTailscaleインターフェースまたは管理コンソールからアドレスを確認します。 - そのTailscaleアドレスとサービスのポートを使用して、対象サービスに接続してください。
- 通常のホームLANアドレス経由でのアクセスが必要な場合にのみ、サブネットルーティングを設定してください。
- 接続は機能しているものの遅い場合は、DERPによる中継の使用を別途調査してください。
ZimaOS Tailscale接続に関するよくある質問
「サービスを利用できません」と表示されたら、Tailscaleが停止した証拠ですか?
いいえ。この場合、アプリページにそのメッセージが表示されていても、コンテナは実行中で、認証済みかつ接続済みでした。
Tailscaleアプリのポートを変更しても解決しなかったのはなぜですか?
問題は通常のWebアプリのポート競合ではなく、接続先アドレスでした。ユーザーはノードのTailscale IPを使用する必要がありました。
リモートのスマートフォンでは、どのアドレスを使用すべきですか?
ZimaOSノードのTailscale 100.x.x.x アドレスにアプリケーションのポートを加えたものです。ただし、LANアドレス用のサブネットルーターが設定されている場合を除きます。
10.0.0.xアドレスがTailscale経由で機能しないのはなぜですか?
これはプライベートなホームLANアドレスです。このサブネットにリモートからアクセスするには、サブネットルートを広告し、承認する必要があります。
正常に動作しているTailscale接続が遅くなるのはなぜですか?
接続は、直接のピアツーピア経路ではなく、DERPを経由して中継される場合があります。
