2024/03/03
tailscaleでSSH接続してみた
Twitterでたまたま見つけて気になったので、試してみたいと思います。
tailscaleについて

Tailscale makes creating software-defined networks easy: securely connecting users, services, and devices.
とあり、いろいろセキュアに接続できるようです。
今回は、SSH接続を試してみます。
もちろん、無料プランが用意されています。
料金はこのようになっています。

設定する
早速Get Startedを押してみます。
アカウントの作成が必要です。利用できるプロバイダーは以下の通りです。

自分はGitHubを利用しました。

2つ以上のデバイスを接続する必要があります。
今回はメインデスクトップのWSLのArch LinuxとMacBook Airで設定しようと思います。
最初はLinuxで進めていきます。 コマンドを早速実行します。
~
❯ curl -fsSL https://tailscale.com/install.sh | sh
Installing Tailscale for arch, using method pacman
+ sudo pacman -Sy
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
+ sudo pacman -S tailscale --noconfirm
resolving dependencies...
looking for conflicting packages...
Packages (1) tailscale-1.60.1-1
Total Download Size: 8.42 MiB
Total Installed Size: 32.94 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
tailscale-1.60.1-1-x86_64 8.4 MiB 330 KiB/s 00:26 [###################################################] 100%
(1/1) checking keys in keyring [###################################################] 100%
(1/1) checking package integrity [###################################################] 100%
(1/1) loading package files [###################################################] 100%
(1/1) checking for file conflicts [###################################################] 100%
:: Processing package changes...
(1/1) installing tailscale [###################################################] 100%
ldconfig: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
:: Running post-transaction hooks...
(1/2) Reloading system manager configuration...
(2/2) Arming ConditionNeedsUpdate...
+ sudo systemctl enable --now tailscaled
Created symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service → /usr/lib/systemd/system/tailscaled.service.
+ set +x
Installation complete! Log in to start using Tailscale by running:
sudo tailscale up勝手にディストリビューションを判別して、pacmanでインストールしてくれました。
そのまま言われた通りに実行します。(リンクは一応隠してます)
~ 30s
❯ sudo tailscale up
To authenticate, visit:
https://login.tailscale.com/a/xxxxxxxxx
Success.リンクを踏んでログインしたら成功しました。
そうすると、desktopというデバイスが追加されていました。

SSHするためには、-sshオプションをつける必要があるようなので、また実行します。
~
❯ sudo tailscale up -ssh
[sudo] password for runfunrun:同じようにMacでも設定します。 Macの場合はAppストアのリンクが表示されるので、そこからインストールします。
https://apps.apple.com/ca/app/tailscale/id1475387142?mt=12
画面の指示に従ってConnectを押すとこのようになりました。

実際にコマンドを実行してみます。
~ 18s
❯ ping 100.103.144.60 -c 4
PING 100.103.144.60 (100.103.144.60) 56(84) bytes of data.
64 bytes from 100.103.144.60: icmp_seq=1 ttl=64 time=34.5 ms
64 bytes from 100.103.144.60: icmp_seq=2 ttl=64 time=220 ms
64 bytes from 100.103.144.60: icmp_seq=3 ttl=64 time=89.3 ms
64 bytes from 100.103.144.60: icmp_seq=4 ttl=64 time=138 ms
--- 100.103.144.60 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 34.482/120.386/219.837/68.094 mspingが通ったので、Success, it works!を押します。

desktopにはSSHというラベルがついてますね。 現状MacにSSH接続はできないようです。(redditより)
SSH接続する
実際にMacからArch LinuxにSSH接続してみます。
方法は簡単で、sshコマンドの後に表示されているIPアドレスを指定するだけです。

非常に高速に動作します。
Cloudflare TunnelでSSH接続したときは遅延が酷く、Neovimが使い物にならなかったのですが、 Tailscaleは快適に使えそうです。
Cloudflareのように、ブラウザからの接続もBetaで実装されているようです。

...からSSH to machine...を押してユーザーを入力するとできます。
Windowsだと別windowで開きます。Macだとそのまま新規タブで開きました。

ブラウザから接続すると、Machinesに追加されます。

このブラウザSSH接続はNeovimが正常に描画されませんでした。 CloudflareのブラウザSSHは正常に描画されていたので、改善の余地ありですね。
Mac側の.ssh/configには以下を設定しました。
Host arch
HostName 100.69.69.94
ServerAliveInterval 60ポートフォワーディングもできました。
ssh -L 3000:localhost:3000 arch感想
とても簡単に設定できて快適だったので、Cloudflareから乗り換えたいと思います。 他にもいろいろ機能があるみたいなので、見てみたいと思います。
ではまた。
最終更新日:2026/01/20
