無料で使えるVPN「TailScale」を導入して自宅ファイルサーバに外部からアクセスする
はじめに
以前、自宅内で使用できるラズパイを用いたファイルサーバを紹介したが、やはりファイルサーバは自宅内からだけでなく自宅外からもアクセスしたくなる。そこでVPN(Virtual Private Network、仮想専用通信網)サービスを用いて手軽で安全にリモートアクセス出来るネットワークを構築する。在宅ワークの際に社内ネットワークにVPNを使用してアクセスしている方も多いだろう。今回は無料で構築できるVPNサービスであるTailScaleを用いて自宅ファイルサーバにアクセスする方法を記載する。
TailScaleについて
VPNは特定の用途に用いるためのネットワークを構築したい場合に、専用線を引くのではなく、パケットの暗号化とカプセル化・トンネリング技術を使用して仮想的に専用線であるかのように扱うというもの。TailScaleはこのVPNサービスだが最大100デバイス、3ユーザーまで無料で使用できるプランがあり、個人利用では無料の範囲内で十分活用できる。
準備するもの、対応機器
・ TailScaleアカウント
アカウントを作成する。Googleアカウント、Microsoftアカウントなどでも認証可。
・対応機器
MacOS、iOS、Windows、Linux、Androidに対応。余談だがSynology社のNASで使用できるアドオンパッケージもある。私はラズパイファイルサーバのほか、Synology社のNASも使用しているのでサポートされているのはありがたい。
ファイルサーバ(Raspberry Pi設定)/クライアント設定
・ファイルサーバ側の設定
ファイルサーバを構築したラズパイにTailScaleをインストールする。
1. TailScaleのダウンロードページより、Linux環境でのインストールコマンドを確認する。
2.確認したインストールコマンドをラズベリーパイ(ファイルサーバ)環境上で実行
$ curl -fsSL https://tailscale.com/install.sh | sh
完了すると下記が表示される。
Installation complete! Log in to start using Tailscale by running:
sudo tailscale up
指示に沿ってコマンド実行
$ sudo tailscale up
完了すると下記が表示される
To authenticate, visit:
https://login.tailscale.com/a/xxxxxxxxxxxxx
ブラウザより指示されたURLにアクセスし、Connectを選択。Connect(機器接続)が完了するとMachinesリストに表示される。リスト上から詳細表示やマシン名などの編集が可能。
・クライアント側の設定
使用するクライアント側にTailScaleをインストールする。ここではWindowsPCを例に挙げる。
1.使用するWindowsPCからTailScaleをダウンロード、インストールする
2.インストールが完了すると認証ダイアログが表示されるのでクリックし、作成したアカウントでログインすると機器接続確認画面が表示されるので、Connectを選択する。
TailScaleコンソールより、マシン一覧に表示される。今回追加したraspberrypi、WindowsPCは赤印部の2台。
アクセス確認
・SSH接続
TailScaleにはMagicDNSというものがあり、接続した機器がこのDNSに登録される。
MagicDNS automatically registers DNS names for devices in your network.
このDNSを用いてインターネット経由でもSSH接続できる。
ssh ユーザー名@Machine名.domain名.ts.net
Machine名、domain名は機器詳細画面から確認できる。下記画面のFull domainの箇所に「Machine名.domain名.ts.net」が記載されている。
・WindowsPCからラズパイファイルサーバにアクセス
windowsのエクスプローラーからネットワーク→対象のファイルサーバを選択する。
パスに直接MagicDNSのマシン名、ドメインを含むFull domainを入力しても良い。
\\Machine名.domain名.ts.net
・VPN接続/切断方法
タスクバー上のTailScaleアイコンよりConnect/Disconnectを選択できる。
最後に
今回、VPNサービスであるTailScaleを用いてラズパイファイルサーバに自宅外からアクセスする方法を説明。他にもVPNは用途が考えられるのでいくつか例を挙げる。
・外出先の軽量ノートPCから自宅PCに接続
自宅でよりハイスペックなデスクトップPCを稼働していたり、そのPC上に開発環境を構築しているなど、自宅の環境にアクセスする用途。
・自作サーバを公開せず、限定的な範囲で使用する
個人的なツールとして使用する場合や、公開前の検証用途などで、限定的な範囲でのみ使用する用途。
等々、様々な用途が考えられる。今回記載したTailScaleは個人の範囲での使用であれば無料の範囲内で十分すぎるほどの機能があるため活用していきたい。