Tailscaleを使う

更新日: 2026.03.22

概要

非常に便利なルータ越えアプリです。ドメイン、ルータの設定無しでルータ越えが出来ます。

インストールと実行

raspberry-piサイド

インストールは簡単。下記をターミナルで実行。

curl -fsSL https://tailscale.com/install.sh | sh

インストール後Tailscaleを有効化するために sudo tailscale up を実行します。

~$ sudo tailscale up To authenticate, visit: https://login.tailscale.com/a/xxxxxx

実行すると、ターミナルに https://login.tailscale.com/a/xxxxxx のようなURLが表示されます。 このURLにアクセスするとTailscaleログイン画面(下記1)が表示されます。

Install process of Tailscale (PC)
  1. 今回はGoogleアカウントでログインしました。
  2. ログインが完了するとこの画面になります。ここで「Connect」をクリック。
  3. この画面が表示されるとRaspberry Piをネットワークに追加され作業完了です。

これでRaspberry PIの設定は終了。

スマホサイド

PlayストアからTailscaleをインストールします。

Install process of Tailscale (cell phone)
  1. PlayストアからTailscaleをインストール
  2. Tailscaleを立ち上げるとこの画面が表示されますが”OK"をクリック。
  3. 設定が始まります。
  4. ログイン画面。Raspberry PIと同じアカウントでログインして下さい。
  5. ログインが完了するとこの画面が表示されます。Connectボタンを押して接続。
  6. 接続完了。
  7. 現在の登録状態です。

動作の確認

Raspberry PI、スマホ各々下記の操作を行って下さい。

Raspberry PI

Tailscaleインストール時にサービス(tailscaled)が自動起動設定になっています。

スマホ

手順は以下の通り。

  • スマホをRaspberry PIのルータの外から接続する設定にする(スマホのWiFiをオフにして4Gにする)。
  • 次に Tailscale を上げて Connect していることを確認
  • ブラウザを上げてRaspberry PIにアクセス。URLは Tailscale から割り当てられた 100.xxx.xxx.xxxを使用します。
  • PCからアクセス用 URL は "https://login.tailscale.com/admin/machines" にアクセスすると確認出来ます。
    MagicDNS of Tailscale
    Raspberry PIにつなぎたいので rasp-1 の値、赤枠の部分がそのURLです。
  • 今回は見守りカメラにつないでみました。 サーバへのアクセスはブラウザの URL欄に "https://100.124.170.127:443" と入力する事になります。
  • Chromeでは問題無く繋がったのですが、Firefoxではダメでした。下記はChromeの画面。問題無く繋がり Streaming 出来ます。
    Access result of cell phone

動作の説明

多分こんな仕組みになっているんだと思います。

Outline of Tailscale system
  1. Raspberry PI、スマホ、Taiscaleサーバ は共にルータが有るとする。Raspberry PI、スマホは Taiscale をインストール済み。
  2. Raspberry PIが sudo tailscale up を実行
    • Raspberry PI
      • 公開鍵(初回のみ公開鍵と秘密鍵を作製し保存)をTailscaleサーバに送る。図のオレンジのライン。
    • Tailscaleサーバ
      • Raspberry PIから公開鍵と Raspberry PI のグローバルIPを受け取る。
      • Raspberry PIにリクエスト完了を送信。図の黒のライン。
    • 以降 Raspberry PI は有る間隔で Tailscaleサーバに接続確認を行う。
  3. スマホ側から接続要求が有ると、Tailscaleサーバは以下の操作を行う。
    • Raspberry PIに対し定期的に行っている接続確認の返答に下記を加える。
      • スマホのグローバルIPアドレス。
      • スマホへのリクエストのタイミング。
    • スマホには下記を返答する。
      • Raspberry PIのグローバルIPと公開鍵
      • Raspberry PIへのリクエストのタイミング。
  4. Raspberry PI と スマホのリクエストがレスポンスに変わる仕組み(ルータ越えの仕組み)。
    • Raspberry PI:教えられたタイミングでスマホに対して”空”のリクエストを行う。
    • スマホ:教えられたタイミングでRaspberry PIに対して”公認鍵”を持ってリクエストを行う。
    • お互いのルータが相手のリクエストをレスポンスと判断する仕組み。
      • 信号自体にリクエスト、レスポンスの区別は無くルーターは下記で判断する。
        1. 送信元と送信先のペア(IPアドレス)
        2. プロトコルとポート番号
        3. 通信を送ってから一定時間内(タイムアウト前)に戻ってきたか
      • 上記1,2は各自 "Tailscaleサーバ" より得ているので、3の条件を満たせば 各々のリクエストが相手のルータにレスポンスと判断される。
      • Tailscaleサーバが絶妙なタイミングをRaspberry PI と スマホに指示していると思われる。
      • ルータを越えた各データはインストールされているTailscaleアプリが処理する。
    • 一度ルータを越えればその後の通信はRaspberry PI と スマホ間で行われる。 Tailscaleサーバはこの通信に全く関与しない。

MagicDNS

Tailscaleには ”MagicDNS” と呼ばれる DNS機能が有ります。この機能を使うとネットワーク内のデバイスと IPアドレスではなく マシン名(ホスト名)で簡単に接続できるようになります。マシン名は  "https://login.tailscale.com/admin/machines" にアクセスすると確認出来ます。

MagicDNS ID

赤矢印がマシン名です。Raspberry PIは "rasp-1" と登録されていました。いままでは Raspberry PIにIPアドレス(100.124.170.127)を使って接続していましたが、これが MagicDNS を使うと "https://rasp-1:433" で接続出来るという事。試してみると確かに繋がりました。もうIPアドレス(100.124.170.127) を覚える必要がなくなりました。

マシン名と同じ行の右端にある3個のドット(上図青い点線の部分)をクリックすると 追加機能のメニューが表示されます。追加機能として名前の変更、削除等が有ります。

もし MagicDNS が機能しない場合は、上部に有る "DNS" タブ(オレンジの丸)をクリックして下さい。 表示されたページに MagicDNS を設定する項目が有ります。 MagicDNS 有効とセットすれば使用出来るようになります。

最後に

非常に便利な "Tailscale” ですが、さらに公式な証明書と鍵を "Tailscale” が発行してくれる事が分かりました。これらを”見守りカメラ”で 使用しているサーバに適用して見ました。 "Tailscaleと見守りカメラ"で詳細を説明しています。参照下さい。

SINCE 2026