チュートリアル

別アプリなしで iOS に Tailscale を設定する

TermAI 内蔵 Tailscale クライアントの設定手順。OAuth から初回 SSH 接続まで 5 分以内。

CC Chen Chen· 創業者·2026年5月28日·6分で読了

なぜ Tailscale を内蔵したか

セルフホストするもの ── ホームラボ、自分の Tailscale ネットワーク背後の VPS 数台、小さなオフィス ── を運用しているなら、iOS で私たちと同じ摩擦に出会ったことがあるはず:Tailscale アプリを開いてトンネルを上げ、SSH アプリに切り替え、トンネルがまだ落ちていないことを祈る、落ちていたら戻って繋ぎ直す。モバイルでこのコンテキストスイッチは聞こえより重いのです。iOS は積極的にアプリを停止し;プライベートホスト名に SSH が到達するためには Tailscale が生きていなければなりません。

そこで Tailscale SDK を直接埋め込みました。第二のアプリはなし。TermAI を開くと、トンネルはアプリのライフサイクルの一部になります。tailnet デバイスは公衆インターネット上にあるかのように SSH リストに表示され、WireGuard で暗号化された経路が裏で処理されます。

前提条件

  • Tailscale アカウント(100 デバイスまで無料)
  • tailnet 上で sshd を動かしている少なくとも 1 台のデバイス ── Mac、Linux サーバー、Raspberry Pi、何でも
  • iOS 16 以降に TermAI インストール済み

tailnet をまだ持っていなければ、まず tailscale.com で登録し、Mac や Linux に Tailscale をインストール。5 分 ── 待ちます。

TermAI で Tailscale を有効化

  1. TermAI を開く → 設定ネットワーク
  2. Tailscale を ON にする
  3. 初回、iOS が VPN 設定の追加を求めます。これは iOS での WireGuard の動作 ── OS がトンネルを処理し、TermAI がそれと通信します。許可 をタップ。

設定プロンプトは一度きり。それ以降、TermAI を開くたびにトンネルが自動的に上がります。

OAuth でサインイン

スイッチがオンになると、TermAI がサインインを促します。Tailscale でサインイン をタップ。Safari に飛んで Tailscale OAuth フロー(Google / GitHub / Microsoft / Okta、アカウントが使用しているもの)に通り、TermAI に戻ります。

公式 Tailscale OAuth API を使用。パスワードが TermAI に入ることはなく、Tailscale 資格情報を保存もしません。

サインインはデバイスごと。iPhone と iPad でサインインすると、Tailscale 管理コンソールで両方が別個に表示されます ── モバイルに異なるアクセス権を与えたい ACL に便利。

最初の tailnet SSH

SSH リストに戻り、+ をタップして新規接続を追加。ホスト名を入力する代わりに、フォーム上部の Tailnet タブをタップ。現在オンラインのすべての tailnet デバイスのリストが表示されます。

1 つをタップ ── 例えば nas という名前のホームラボ。TermAI が自動入力:

  • ホスト:デバイスの tailnet IP(100.x.y.z)
  • ユーザー名:空 ── あなたが記入
  • ポート:22(sshd が別の場所で動いている場合は上書き)

ユーザー名を追加し、TermAI 鍵マネージャから秘密鍵を選ぶ(または新しく生成)、保存。接続をタップ。入りました。

MagicDNS ホスト名を使う

数字の tailnet IP も動きますが、MagicDNS は生活を良くします。tailnet で MagicDNS を有効にしていれば、ホスト名で接続できます ── ssh 100.96.4.21 ではなく ssh nas

Tailscale 管理コンソールの DNS 下で MagicDNS を有効化。TermAI は自動的に検出 ── 有効化後、Tailscale スイッチを一度再起動してリゾルバをリフレッシュ。それ以降、SSH フォームの ホスト フィールドは nas を直接受け付けます。

トラブルシューティング

Tailscale デバイスがピッカーに表示されない。トンネルが実際に上がったか確認:設定 → ネットワーク → Tailscale → ステータス。「接続中」のままなら、iOS デバイスが VPN 設定を受け入れていない ── スイッチを再トグルして iOS プロンプトを再受け入れ。

Wi-Fi で動くが、モバイルで動かない。一部のキャリアは Tailscale が好む UDP をブロック;クライアントは自動的に DERP リレーにフォールバックしますが、フォールバックは遅い。モバイルで一貫して遅いなら、詳細設定で DERP を強制。

tailnet 接続成功後の「Permission denied (publickey)」。トンネルは上がっている;SSH 認証が失敗。ユーザー名を再チェックし、TermAI 公開鍵がサーバーの ~/.ssh/authorized_keys にあるか確認。この時点で tailnet 部分は問題と無関係。

もう一つ:Tailscale は中国本土ビルドで現地規制により無効化されています。その地域に出荷する場合は /docs/china で代替ネットワーキングパスを参照。

クイックファクト

  • Tailscale 内蔵:スマホ側に別途 VPN アプリは不要
  • 設定:Tailscale の API キーと tailnet を入力すると、ホームタブがデバイス一覧になる
  • ワンタップ接続:オンラインのデバイスに SSH と SFTP のショートカットボタンが出る
  • ポート転送不要:tailnet の安定した 100.x アドレスでどこからでもプライベートサーバーに到達
  • 両プラットフォーム共通:iOS と Android で内蔵 Tailscale は同一
TermAI を試す

iOS / Android で無料。無料プランは AI 5回/日、SSH/SFTP 無制限、Tailscale 内蔵。

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog