内蔵 Tailscale
ServerCC には Tailscale ネットワークのサポートが内蔵されています。デバイスにシステム全体の Tailscale VPN をインストールすることなく、アプリから直接 Tailscale ネットワーク上のサーバーに接続できます。
なぜ内蔵 Tailscale?
従来、iOS から Tailscale ネットワーク上のサーバーに接続するには、Tailscale アプリをシステム全体の VPN として実行する必要がありました。これは以下を意味します:
- デバイスのすべてのトラフィックが Tailscale を経由する
- iOS では同時にアクティブにできる VPN は1つだけ
- 他に必要な VPN アプリと競合する可能性がある
ServerCC はアプリに直接 Tailscale ネットワーキングを組み込むことでこの問題を解決します。Tailscale 接続はアプリレベルのみで、デバイスの他のネットワークトラフィックには一切影響しません。
セットアップ
Tailscale はサーバーごとに設定します。サーバーの追加または編集時に有効にします。
Tailscale から Auth Key を取得
Tailscale 管理コンソールにアクセスして Auth Key を生成します。用途に応じて再利用可能なキーまたはワンタイムキーを選択できます。
サーバーフォームで Tailscale を有効にする
サーバーの追加または編集時に、Tailscale セクションまでスクロールし、Tailscale 経由で接続をオンにします。表示される Auth Key フィールドにキーを貼り付けます。
ホストを Tailscale アドレスに設定する
ホストフィールドに、サーバーの Tailscale IP アドレス(例:100.x.y.z)または MagicDNS ホスト名を入力します。ServerCC は内蔵の Tailscale ネットワークを通じて SSH 接続をルーティングします。
Tailscale ネットワークで MagicDNS が有効になっている場合、IP アドレスの代わりにマシン名(例:my-server)を直接使用できます。
接続フロー
Tailscale が有効なサーバーを開くと、ServerCC は接続の進行状況をリアルタイムで表示します:
- Tailscale ネットワークを起動 — アプリがエフェメラルノードとして Tailscale ネットワークに参加
- Tailscale 経由で接続 — Tailscale トンネルを通じてターゲットサーバーに接続
- 接続のセットアップ — ローカル TCP プロキシが Tailscale トンネルと SSH クライアントを橋渡し
- SSH 接続を確立 — トンネル上で SSH 認証が通常通り進行
サーバー詳細ページでは、必要に応じて Tailscale をバイパスして直接接続するオプションも提供されます。
接続に失敗した場合
ServerCC はローカル Tailscale クライアントが報告する backend state に基づき障害を分類するため、エラーメッセージが実際の原因を直接指し示します:
- Auth Key が無効/期限切れ — Tailscale 管理コンソールでキーをローテーションし、ServerCC のサーバー設定を更新してください
- 認証処理中 — ノードが立ち上がるのを少し待ってから再試行すると、通常は成功します
- ホストに到達できない — 対象マシンがオフライン、もしくは同じ tailnet に参加していません
一時的な起動失敗でローカルの Tailscale 状態ディレクトリを消去しないようになったため、ネットワーク不調やバックエンドの一時的な不具合で再利用可能な Auth Key が「焼却」されることはありません。キーの再生成が必要になるのは、Tailscale 自身が「無効/期限切れ」と報告した場合のみです。
仕組み
Tailscale を設定すると、ServerCC は提供された Auth Key を使用してエフェメラルノードとして Tailscale ネットワークに参加します。これはすべてアプリ内で行われます:
- アプリがユーザースペースで Tailscale 接続を確立し、システムの VPN スロットは使用しません
- 同じ Auth Key を使用するサーバー間で Tailscale ノードが共有されます(参照カウント方式)
- SSH 接続はローカル TCP プロキシを通じて Tailscale トンネルにブリッジされます
- その他のすべてのトラフィック(Tailscale 以外のサーバー、Web ブラウジング、他のアプリ)は影響を受けません
- Tailscale サーバーと非 Tailscale サーバーの両方に同時に接続できます
Tailscale アプリとの共存
ServerCC はアプリレベルの Tailscale 接続を使用するため、公式 Tailscale アプリとは独立して動作します。以下のことが可能です:
- デバイスで別の VPN がアクティブな状態でも ServerCC の Tailscale 機能を使用できます
- 公式 Tailscale アプリと ServerCC を競合なく並行して実行できます
- Tailscale アプリを切断したまま、ServerCC 内でのみ Tailscale ネットワーキングを使用できます
Auth Key は iOS キーチェーンに安全に保存されます(サーバーごと)。キーが期限切れになった場合は、Tailscale 管理コンソールから新しいキーを生成し、ServerCC でサーバーを編集して更新する必要があります。