とにかくなんでもつなげちゃえ！Tailscaleという便利サービス

# はじめに

この記事は、Qiita Advent Calendar 23日目の記事です。
以下の記事より、すべての記事をご覧になれます。

https://qiita.com/0_terarin_0/items/2b60d47a2d0e64a273c3

# 本編

みなさん、VPN接続を使いたい時ってどうしていますか？僕は、かつては全てSoftetherのVPNサーバーを使っていたのですが、ずっと考えていることがありました。それは、サーバーとクライアントのような設定にはしたくない。

これにはいくつかの理由があるのですが、僕の場合、

- 安定したインターネット環境がないのでどこか一つにVPNサーバーを設置すると全てが使えなくなる可能性がある
- 時と場合によっては既存のVPNがきちんと使えない中でどこか一つがダメになるというのはめんどくさい
- そもそもユーザー管理とかの危機管理がきちんとできる自信がない。

そこで辿り着いた一つ目のVPNが、WireGuardでした。

## WireGuard、難しすぎる

WireGuardをご存知ですか？（舐めるな）

https://www.wireguard.com/

WireGuardは、僕にとっては非常に難しかったです。というのも、Configファイルの設定とか、もうぐぁーー！て感じです。しかも、僕はVPCを使っていることもあってそこの特殊な設定には少々慣れていない部分もあり、このWireGuardを最初はUTMで試してみたものの接続できずなす術がありませんでした。

## 万能サービス「Tailscale」

TailscaleはTailscale社が提供しているVPNサービスです。

https://tailscale.com/

このTailscaleというサービスは分散型VPNでさまざまなサービスを提供しています。（といっても僕が使っているのは本当にVPNだけですが、、、。）みなさん、ぜひチェックしてみてください！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/08a495ef-3f3e-e9e9-62d9-4dd51dc04982.png)

引用：https://tailscale.com/

## Tailscaleを使ってみよう！

まずは兎にも角にもTailscaleを使ってみましょう！

ログインして登録したらとりあえずアカウントの登録自体は完了です。

https://login.tailscale.com/

ログインが終わったら、自分が持っている端末にそれぞれインストールしていきます。

### iOS・Android

アプリをダウンロードしましょう。

https://apps.apple.com/us/app/tailscale/id1470499037?ls=1

https://play.google.com/store/apps/details?id=com.tailscale.ipn&pli=1

ログインして接続したら終わりです！

![Captura de pantalla 2024-12-24 a la(s) 10.50.55 2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/b1276050-c8c9-f7e4-e4ec-f65b1a377be9.jpeg)

![Screenshot_2024-12-24-10-51-46-903_com.tailscale.ipn.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/4b26e165-84da-b91e-d48c-325c72ac937c.jpeg)

### Mac

App Storeかもしくは直接ダウンロードしてインストールします。

https://apps.apple.com/ca/app/tailscale/id1475387142?mt=12

https://tailscale.com/download/mac

終わってこちらもログインしたら接続まで簡単です！

ちなみに、Mac版はインストールが終わったらコマンドが使えるようになります。

```zsh
(arm64) tailscale
The easiest, most secure way to use WireGuard.

USAGE
  tailscale [flags] <subcommand> [command flags]

For help on subcommands, add --help after: "tailscale status --help".

This CLI is still under active development. Commands and flags will
change in the future.

SUBCOMMANDS
  up          Connect to Tailscale, logging in if needed
  down        Disconnect from Tailscale
  set         Change specified preferences
  login       Log in to a Tailscale account
  logout      Disconnect from Tailscale and expire current node key
  switch      Switches to a different Tailscale account
  configure   [ALPHA] Configure the host to enable more Tailscale features
  syspolicy   Diagnose the MDM and system policy configuration
  netcheck    Print an analysis of local network conditions
  ip          Show Tailscale IP addresses
  dns         Diagnose the internal DNS forwarder
  status      Show state of tailscaled and its connections
  metrics     Show Tailscale metrics
  ping        Ping a host at the Tailscale layer, see how it routed
  nc          Connect to a port on a host, connected to stdin/stdout
  ssh         SSH to a Tailscale machine
  funnel      Serve content and local servers on the internet
  serve       Serve content and local servers on your tailnet
  version     Print Tailscale version
  web         Run a web server for controlling Tailscale
  file        Send or receive files
  bugreport   Print a shareable identifier to help diagnose issues
  cert        Get TLS certs
  lock        Manage tailnet lock
  licenses    Get open source license information
  exit-node   Show machines on your tailnet configured as exit nodes
  update      Update Tailscale to the latest/different version
  whois       Show the machine and user associated with a Tailscale IP (v4 or v6)
  drive       Share a directory with your tailnet
  completion  Shell tab-completion scripts

FLAGS
  --socket value
    	path to tailscaled socket (default /var/run/tailscaled.socket)
```

### Windows

ダウンロードしてログインしたら終わりです。

https://tailscale.com/download/windows

が、Windows版に関しては少し気をつけないといけないことがありまして。Windowsに複数ユーザーを設定している場合は、インストーラーを実行したユーザー以外が最初にログインしたらうまく接続できなくなりますので、トリガーを設定する必要があります。トリガーには下のコマンドを設定しましょう。

```powershell
tailscale up
```

### Linux

下のコマンドを入力したら色々勝手にインストールしてくれます。

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

sudo tailscale up
```

## IPの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/466b98a2-fa6f-6dc4-7827-83ea9011b44c.png)

インストールが完了したらTailscaleのAdmin画面には下のようにデバイスが一覧のリストになっています。ちなみに、ここでIPの設定とかも変更できるようなので、ぜひみなさんやってみてください。

### MagicDNS

MagicDNSは、どうやらユニークなアドレスで各デバイスにアクセスできるようになる機能のようです。（僕は使っていません。）

https://tailscale.com/kb/1081/magic-dns

### Nameservers

Nameserversを上書きすることができます。が、これもMagicDNSを使わないのであれば使用しないですし、僕は色々なネットワークが限られた環境で使うことが多いので、この機能を使おうとすると碌にネットに繋がらなくなるようになります:(

https://tailscale.com/kb/1054/dns

### Exit nodes

全てのトラフィックを一つのノードから通過させる方法です。これを使うと普通のVPNのように使えます。

https://www.google.com/search?q=Exit+Node&sourceid=chrome&ie=UTF-8

# 最後に

今回はちょっと一風変わったVPNを紹介しました。こんなに便利なサービスはありませんので、ぜひみなさん使ってみてください！