Wireguardベースで簡単に フルメッシュ型 VPN を構築できる、 tailscale の無料枠がいつの間にか大きく緩和されていたので、アカウント開設、手始めに Ubuntu PCや Android スマートフォンへ導入します。
tailscaleアカウント登録
一年前には最大20デバイス、1サブネットまでだった無料プランが、本記事執筆時の2024年春現在、最大100デバイスにまで緩和。
そこで、既に自宅と別宅の間をOpenWrtにWireguardで構築済みの拠点間VPNを補完、冗長化すべく、tailscaleを使ってみます。
アカウント開設では、任意のEメールアドレスと言う訳にはいかないことから、無難にGoolgeアカウントを使用。
当たり前ですが、遷移をクリックしながら進むだけでアカウントが開けました。

図03.Googleアカウントによる認証
tailscale Admin Consoleページに入ると、ファーストデバイスの登録を促されます。
Ubuntu 18.04デスクトップへの導入
ファーストデバイスは、仕事場で使っているUbuntu 18.04デスクトップPCに。Linux向けの導入方法は用意されたインストールスクリプトを実行するのみ。中でディストロを識別してレポジトリを追加した上で、パッケージマネージャを通じてtailscaleと必要な依存パッケージがインストールされます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ curl -fsSL https://tailscale.com/install.sh | sh Installing Tailscale for ubuntu bionic, using method apt + sudo mkdir -p --mode=0755 /usr/share/keyrings + + curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/bionic.ascsudo apt-key add - OK + curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/bionic.list + sudo tee /etc/apt/sources.list.d/tailscale.list # Tailscale packages for ubuntu bionic deb https://pkgs.tailscale.com/stable/ubuntu bionic main + sudo apt-get update + sudo apt-get install -y tailscale tailscale-archive-keyring 以下のパッケージが新たにインストールされます: tailscale tailscale-archive-keyring tailscale (1.62.1) を設定しています ... Created symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service → /lib/systemd/system/tailscaled.service. tailscale-archive-keyring (1.35.181) を設定しています ... + [ false = true ] + set +x Installation complete! Log in to start using Tailscale by running: sudo tailscale up |
インストールを終えたら、以下のように初回接続を実行して認証URLを得ます。
|
1 2 3 4 5 |
$ sudo tailscale up To authenticate, visit: https://login.tailscale.com/a/############# |
認証URLをコピーし、ブラウザで開いてGoogleアカウントで認証、

図05.tailscaleログイン
Connect ボタンを押してデバイスをtailnetへ接続します。

図06.tailnetへデバイスを接続
tailscale Admin Consoleに、デバイス名とIPアドレスが現れました。
ターミナルで tailscale0 インターフェイスと、 tailscaled サービスの状態を確認。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Success. $ ifconfig tailscale0 tailscale0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280 inet 100.###.###.### netmask 255.255.255.255 destination 100.###.###.### unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (不明なネット) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 60 bytes 8136 (8.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 $ systemctl status tailscaled.service ● tailscaled.service - Tailscale node agent Loaded: loaded (/lib/systemd/system/tailscaled.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-04-09 08:03:32 HKT; 9h ago Docs: https://tailscale.com/kb/ Process: 1202 ExecStartPre=/usr/sbin/tailscaled --cleanup (code=exited, status=0/SUCCESS) Main PID: 2197 (tailscaled) Status: "Connected; ########@gmail.com; 100.###.###.### ####:####:####::####:####" Tasks: 14 (limit: 4915) CGroup: /system.slice/tailscaled.service └─2197 /usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port |
このサービスはあくまでデーモンなので、接続・切断は tailscale up/down で行う必要があるようです。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo tailscale down $ systemctl status tailscaled.service ● tailscaled.service - Tailscale node agent Loaded: loaded (/lib/systemd/system/tailscaled.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-04-09 08:03:32 HKT; 9h ago Docs: https://tailscale.com/kb/ Process: 1202 ExecStartPre=/usr/sbin/tailscaled --cleanup (code=exited, status=0/SUCCESS) Main PID: 2197 (tailscaled) Status: "Stopped; run 'tailscale up' to log in" Tasks: 14 (limit: 4915) CGroup: /system.slice/tailscaled.service └─2197 /usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port |
tailscale up で接続したままシステムを再起動させた場合も、次回起動後に自動接続されます。対して、 tailscale down の状態でシステム再起動した場合ば、起動後も切断状態のまま。そういう仕様です。
Androidスマートフォンへの導入
デバイス1つだけでは疎通確認も出来ないので、AndroidスマートフォンASUS Zenfone 8 Flipへtailscaleを入れます。
Google Playストアから公式アプリをインストール。アプリを立ち上げたら、tailscaleのアカウントに使用したGoogleアカウントでログイン。
認証後、Androidのシステム側からVPNに関する警告を経て、デバイスがtailnetへ登録されました。
尚、どのデバイスもデフォルトでは3ヶ月毎にログインし直すことになるので、tailscale admin consoleのデバイス設定で、 Disable key expiry をセットしておきました。
さて、Androidでは同時接続可能なVPNは1つまで、という制限があるので、普段、広告ブロックに愛用しているAdAwayがブロックするのに使用している疑似的なVPNと、tailscaleを同時使用することはできません。tailscaleを Active にすれば、AdAwayが止まります。
tailscale接続中も広告ブロックの恩恵を受けるには、tailnet上のどこかに利用可能な広告ブロックDNSがあれば良いことから、そのDNSを構築済みの自宅LANを、tailscaleのSubnet Routerと称される機能で丸ごとtailsnetに繋いでしまうのが、次回のお話です。









