フリー(OSS)のNASシステムとして人気のTrueNAS(旧FreeNAS)はLinuxベースの「TrueNAS Scale」でdockerに完全対応しました。
TrueNAS Scaleの環境が構築済であれば、簡単な操作でdockerを使ったさまざまなアプリケーション機能を追加インストールすることができ、商用NASであるQNAPやSynologyと同じような高機能ストレージサーバーとなります。
さまざまなサービスをTrueNAS Scale上に構築すると、外出先からも自宅のTrueNAS Scaleが使いたくなってきます。
高価なQNAPやSynologyを購入しなくても、さまざまなクラウドサービスをサービスごとにサブスクしなくても、すべて自宅のTrueNAS Scale上で実現できる環境を構築することができます。
本記事ではTrueNAS Scaleで利用可能なdockerおよびtailscaleの機能を使い、外出先からいつでもTrueNAS Scaleのサービスにアクセスできる環境を構築していきます。
TrueNASとtailscaleプラグインでプライベートクラウド
TrueNAS Scaleは人気のフリーソフト(OSS)ストレージサービスであるTrueNAS(旧FreeNAS)をLinuxへ移植したソフトウェアです(オリジナルはFreeBSDベースのTrueNAS Core)。
ファイルサーバーの人気ソフトウェアとして長い実績をもつ高機能なTrueNASがLinuxへ移植されたことで、人気のコンテナサービス「docker」に完全対応しました。
これにより、dockerで利用可能な豊富なアプリケーションがTrueNAS Scaleでも簡単に使えるようになりました。
自宅でクラウドサービスを構築できる
スマホの普及により従来からのファイルサーバーの利用範囲が広がってきました。
昔はファイルサーバーといえばデータの保管庫だったのですが、現在はスマホと連携して写真や動画の共有サービスやAIによる仕分け管理までできてしまいます。
Google PhotosやAmazon Photosなどで提供されているサービスと同じような環境を自宅のTrueNAS Scaleで実現できてしまいます。
特に写真や動画をたくさん扱う場合には容量課金のクラウドサービスでは非常に高額になってしまいます。
自宅のTrueNAS Scaleに同様のクラウドサービスを構築することで、これらのコストを抑えることができます。
外出先からも利用可能になる?
自宅に置いてあるTrueNAS Scaleとはいっても、クラウドサービスと同じように外出先から簡単にスマホでもパソコンからも利用することができます。
この「外出先からいつでも自宅クラウドへアクセスできる」環境を構築してくれるのがtailscaleというVPNサービスです。
自宅のTrueNAS Scaleおよび外出先で利用するスマホやパソコンにtailscaleアプリをインストールすることで、いつでもどこからでも自宅のTrueNAS Scale上に構築したサービスを利用することができるようになります。
本記事では、この「外出先から自宅へ簡単にVPN接続できるサービス」としてのtailscaleをTrueNAS Scaleへインストールし環境構築する手順を説明していきます。
TrueNASでプラグインを使う準備
本記事ではTrueNAS Scaleの環境にdockerアプリケーションとしてtailscaleを導入していきますが、そのための準備作業があります。
準備作業として、TrueNAS Scaleの環境上で行う準備作業と、tailscaleサービスの管理画面上で行う準備作業があり、以下の作業となります。
- tailscale利用者登録
- 認証キー(Auth Key)の取得
TrueNAS Scaleでdockerアプリケーションを管理するメニューは「Apps」メニューになります。
準備① TrueNAS Scale上での準備作業
まずTrueNAS Scaleの環境上にて、以下2点の準備作業を行います。
dockerアプリケーション用Poolの定義
TrueNAS Scaleでdockerアプリケーションを利用する場合にはアプリケーション用のPoolを割り当ててあげる必要があります。
すでに作成済のPoolを利用して良いです。
本記事ではストレージ用として作成したPool「tank」をdockerアプリケーション用Poolとして定義していきます。
※もちろん、別poolを作成してdocker専用に割り当てても構いません。
メニュー「Apps」を開き、「設定」のドロップダウンリストから「Choose Pool」を選択します。
作成済Poolの選択画面が表示されるので、dockerアプリケーションで使用するPoolを一覧選択します。
Poolを選択すると、しばらく「Configurating…」と動作し、最初の「Apps」画面に戻ってきます。
以上でdocker用Poolの設定は完了です。
アプリケーションリストの更新
次に利用可能なdockerアプリケーションの一覧リストを最新化しておきます。
メニュー「Apps」画面から画面右上の「Discover Apps」をクリックします。
すでにdockerアプリケーションを導入している場合はインストール済のアプリケーションがこの画面に表示されます。
tailscaleアプリケーションをインストールするために画面右上の「Discover」ボタンを押下します。
「Discover」画面では利用可能なdockerアプリケーションが一覧で表示されます。
初めてこの画面を開いた場合、または久しぶりにこの画面を開いた場合には一覧表示が最新化されていません。
このため、画面右上の「Refresh Charts」の文字リンクをクリックして利用可能アプリケーション一覧を更新しておきましょう。
以上で「dockerアプリケーション一覧の更新」は完了です。
準備② tailscaleサービスの準備
TrueNAS Scaleへtailscale環境を構築するためにはtailscaleへサービス利用者登録を行う必要があります。
tailscaleでは有料プランも提供されていますが個人利用の範囲においては無料プランで十分です(利用者登録は無料)。
tailscale利用者登録
tailscaleの利用者登録には以下のいずれかのアカウントが必要となります。
- Googleアカウント
- Microsoftアカウント
- Githubアカウント
- Apple ID
- OICDアカウント
いずれかのアカウントを利用し、tailscaleサービス登録画面より利用者登録を行います。
tailscaleサービスで利用するアカウント(いつも使っているアカウント)を選びログインを行います。
私はいつも使っているGoogleアカウントで登録しました。
上図のようなtailscale管理コンソールが表示されればtailscale利用者登録は完了です。
今はまだ何も表示されていませんが、この「Machines」のページにあなたがこれから登録する自宅サーバー/外出先デバイス(PCやスマホ)が追加登録されていきます。
認証キー(Auth Key)の取得(発行)
利用者登録が完了したら管理画面コンソールの「Settings」タブの「Keys」項目から画面遷移し「Auth keys」を見つけてください。
Auth KeyとはTrueNAS Scale上にインストールするtailscaleアプリケーションがtailscaleサービスとして認証してもらうために必要なキーとなり、tailscaleのインストール時に設定します。
画面上の「Generate auth key…」をクリックするとAuth Key発行画面(ダイアログ)が表示されます。
Auth Key発行ダイアログ画面では以下の情報を入力します。
Description | キーの備考を記入しておくと良いでしょう ※未記入でも可 |
---|---|
Reusable | オン(右へスライド) ※オフだとtailscale再起動でキー無効となるため |
上記を設定したら「Generate key」ボタンを押下します。
発行されたAuth Keyが画面表示されます。
ここで発行されたAuth Keyはtailscaleアプリケーションのインストール時に設定しますので、メモ帳などにコピーして保管しておきます。
以上で認証キー(Auth Key)の再発行、およびtailscaleサービス側での準備作業は完了です。
TrueNASへtailscaleプラグインをインストール
ここまでの準備作業で以下の作業が完了しました。
- TrueNAS ScaleへアプリケーションPoolの登録
- TrueNAS Scaleのアプリケーション一覧の更新(最新化)
- tailscaleサービス利用者登録
- tailscale認証キー(Auth Key)の発行
では、ここからはTrueNAS Scaleへtailscaleをdockerアプリケーションとして登録(インストール)していきます。
STEP① tailscaleアプリケーションのインストール
TrueNAS Scaleのメニュー「Apps」から画面右上の「Discover Apps」をクリックします。
「Discover」画面ではTrueNAS Scaleで利用可能なdockerアプリケーションが山のように表示されます。
ここで検索欄に「tailscale」と入力すると、tailscaleアプリケーションが絞り込み表示されます。
絞り込みされた「tailscale」アプリケーションをクリックするとアプリケーションの詳細画面が表示されます。
ここで「Install」ボタンを押下します。
tailscaleのインストールパラメーター設定画面が表示されるので、必要な情報を入力していきます。
Application name | |
---|---|
Application Name | 初期値”tailscale”のまま |
バージョン | 初期値のまま |
Tailscale Configuration | |
Auth Key | 準備作業で発行した認証キー(Auth key)を貼り付けます |
ホスト名 | お好きな名前 ※本記事では”truenas” ※tailscaleサービス管理コンソール上に表示されるマシン名となります ※必ず「英数小文字」で入力 |
Advertise Routes ※(1) |
「Add」ボタンを押して自宅サブネットを登録します ※”192.168.1.0/24″など |
Advertise Exit Node ※(2) |
外出先から自宅回線をExitNodeとする場合にチェック |
Userspace | 初期値(チェック)のまま |
Accept DNS | 基本的に初期値(未チェック)のまま |
Network Configuration | |
Host Network | 初期値(未チェック)のまま |
Resources Configuration | |
CPU | 初期値のまま |
メモリ | 初期値のまま |
上記を設定したら「インストール」ボタン押下します。
画面上にはアプリケーション一覧に「tailscale」が追加され、ステータスが「Deploying(配備中)」となります。
しばらく待って、ステータスが「動作中」になればインストール完了です。
以上でTrueNAS Scaleへのtailscaleインストールは完了です。
※1) Advertise Routesの設定値
「Advertise Routes」には自宅ネットワークのサブネットを登録します。
たとえば、自宅のネットワーク環境(IPv4アドレス)が「192.168.1.xxx」であれば、サブネットは「192.168.1.0/24」となります。
基本的にはTrueNAS ScaleのIPv4アドレスを参照して確認するとよいでしょう。
上位ネットワークがある場合
自宅のネットワーク環境において、TrueNAS Scaleが存在するネットワーク(サブネット)とは別に上位に別のネットワークがある場合があるかもしれません。
たとえば、インターネット接続用の回線としてNTTドコモ「home5G」やソフトバンク「Softbank Air」、KDDI「WiMAX +5G」などのホームルーターを利用している場合にはホームルーターのネットワーク配下に別のネットワークを構築してTrueNASなどを設置している場合もあるかもしれません。
このような上位に別のネットワークがある場合には「Add」ボタンをもう一度押下して2つ目の「Advertise Routes」を登録します。
これにより、TrueNASが存在するネットワーク(サブネット)に加えて上位ネットワーク(ホームルーター等のサブネット)へも外出先からアクセスできるようになります。
例えば、NTTドコモ「home5G」のルーターIPアドレスの初期値は「192.168.128.1」なので、初期値のまま利用している場合はhome5G直下のサブネットは「192.168.128.0/24」となります。
※2) ExitNodeとは?
tailscaleを使って外出先から自宅へ接続している状態で、せっかく安全な自宅回線が利用できるのだから自宅以外のインターネット接続も自宅回線を使いたい、という使い方が「ExitNode」です。
街中Wi-Fiなどあまり信用できないインターネット回線などを使っている場合に、信頼できる自宅の回線からインターネットへ出るための仕組みとなります。
この機能(ExitNode)を使いたい場合には「Advertise Exit Node」をチェックします。
なお、「Advertise Exit Node」をチェックした場合でも、クライアント側のtailscale設定により「ExitNodeを利用する/しない」の選択が可能です。
なので、よくわからない場合にはチェックしておくとよいでしょう。
STEP② tailscale管理画面での認証
TrueNAS Scaleへのtailscaleインストールが完了しました。
tailscale管理コンソールで発行した認証キー(Auth Key)を使ってtailscaleが動作しているので、この時点でtailscale管理コンソールにはTrueNAS Scaleが登録されているはずです。
では、tailscale管理コンソール画面を確認してみましょう。
tailscale管理コンソール | tailscaleプロジェクト
tailscale管理コンソール画面の「Machines」には今登録したTrueNAS Scaleのtailscaleが登録されているので確認します。
マシン名はtailscaleインストール時に設定した「ホスト名(本記事では”truenas”)」で表示されています。
ルート設定の承認
tailscale管理コンソール画面にはTrueNAS Scaleへインストールしたtailscaleアプリケーションが表示されています。
登録したホスト名(初期値:truenas-scale)の右にある三点マーク「…」をクリックし「Edit route settings…」を選択します。
TrueNAS Scaleでのtailscaleインストール時に設定した「Advertise Route」のサブネット、および「Advertise Exit Node」の承認を行います。
「Subnet routes」および「Exit node」として登録情報が表示されているので、どちらもチェックし「Save」ボタン押下。
以上でネットワーク情報の承認が完了しました。
また、これにてtailscale環境構築は完了です。
うまくつながらない!
ここまでの作業でTrueNAS Scale上へtailscaleをdockerアプリケーションとしてインストールし、サービス利用可能な状態となっています。
あとはパソコンでもスマホでもクライアント用のアプリをインストールするだけで、いつでもどこからでも自宅ネットワークへ接続し、自宅にいるときと同じように自宅サーバーのサービスを利用することができます。
ここで「うまくつながらない!?」という場合は、多くの場合tailscaleインストール時のパラメータ設定が間違えています。
tailscaleインストール時のパラメーターは後からでも変更することが可能です。
tailscaleインストールパラメーターの見直し/修正
tailscaleアプリケーションのインストールパラメーターは後からでも(インストール後でも)変更することができます。
TrueNAS Scaleのメニュー「Apps」を開くとインストールされているdockerアプリケーションが一覧表示されます。
「tailscale」アプリケーションの右端にある「■」マークをクリックして、tailscaleを一時停止します。
ステータスが「Stopped」の赤文字に変わったらdockerアプリケーションの「tailscale」をクリックします。
画面はtailscaleアプリケーション情報が表示されるので「Application Info」の「編集」ボタンを押下します。
インストール時の設定と同じ項目が画面表示されるので、設定内容を確認します。
間違いがあれば修正し、画面下の「アップデート」ボタン押下で一覧画面へ戻ります。
一覧画面より「tailscale」の右端の「▲」マークをクリックしてステータスが「動作中」になると新しい設定内容にてtailscaleが再起動されています。
改めて動作確認してください。
どこがおかしい??
tailscaleは非常にうまくできたサービスであり、ほとんどネットワーク環境にとらわれずにVPN接続ができてしまいます。
設定も簡単です。
通常、「うまくつながらない」という場合は「Advertise Routes」の設定が実際の自宅ネットワークのサブネットになっていない場合がほとんどです(つまり設定ミス)。
まずはTrueNAS ScaleのIPv4アドレスを確認し、IPv4アドレスの末尾を”0/24″としたものがサブネットになります。
たとえばTrueNAS ScaleのIPv4アドレスが「192.168.1.128」であれば、登録すべきサブネット(Advertise Subnet)は「192.168.1.0/24」となります。
クライアントの準備と動作確認
Windows11で動作確認
外出先で利用するWindowsパソコンにtailscaleクライアントアプリをインストールし、設定していきます。
アプリのダウンロードとインストール
アプリのダウンロードはtailscaleのホームページより行います。
tailscaleダウンロードセンター | tailscaleプロジェクト
上記「Download Tailscale for Windows」をクリックしてアプリをダウンロードし、ダウンロードしたファイルを実行することでtailscaleクライアントアプリがインストールされます。
アプリがインストールされると、Windowsパソコンのタスクトレイにtailscaleアプリのアイコンが表示されます。
アイコンを右クリックしてメニューから「Log in…」をクリックします。
ブラウザが起動してtailscale管理コンソールへのログイン画面が表示されるのでログインします。
ログインするとtailscale管理コンソールが表示されます。
tailscale管理コンソールには先に登録したturnasに加えて、今登録したWindowsパソコンが登録されました。
上記のように、外出先からも自宅TrueNAS Scaleへいつも使っているIPアドレスで接続することができました。
また、今回TrueNAS Scale上のtailscaleではTrueNAS Scaleサーバーだけでなくサブネットとして自宅ネットワークを丸ごと登録しています。
このため、TrueNAS Scaleだけでなく自宅ネットワークの他のデバイスへも外出先からアクセスすることができます。
外出先パソコンからの動作確認
では外出先のWindowsパソコンから自宅のTrueNAS Scaleへ接続してみます。
我が家のTrueNAS ScaleのIPアドレスは「192.168.11.40」と設定しています。
外出先パソコンのブラウザから自宅TrueNAS ScaleのIPアドレスを入力してみます。
上図のように外出先からいつも自宅で使っているIPアドレスで自宅TrueNAS Scaleへアクセスすることができました。
また、今回はTrueNAS ScaleのtailscaleではTrueNAS Scaleだけでなく自宅ネットワーク全体をサブネットとして登録しています。
このため、外出先からでもTrueNAS Scaleだけでなく自宅ネットワーク内のすべてのデバイスへアクセスすることができる環境になっています。
我が家はTrueNAS Scale以外にOpenMediaVaultによるNASを構築しています。
上図のようにTrueNAS Scale以外にも(tailscaleをインストールしていない)OpenMediaVaultへもいつものIPアドレスでアクセスすることができました。
スマホで動作確認
次にスマホで使える環境を構築、および確認していきます。
今回はスマホとしてAndroidスマホを利用しますが、iPhoneでも同様の手順となります。
tailscaleスマホアプリのインストールとログイン
まずはスマホアプリをスマホへインストールします。
tailscaleダウンロードセンター | tailscaleプロジェクト
上記リンクのQRコードをスマホのカメラで読み取ります。
または、直接Playストア(iPhoneならAppストア)から「tailscale」で検索しても良いです。
Google Playストア(または、Apple Appストア)からtailscaleをインストールします。
インストールできたらスマホからtailscaleアプリを起動します。
tailscaleアプリを起動するとログイン画面が表示されるので、同じようにログインします。
ログインが完了するとパソコン版と同じようにtailscale管理コンソールが表示されます。
すでに登録済のTrueNAS Scale(truenas)とWindowsパソコン(windows10)が登録されているのがわかります。
この状態で、スマホもtailscale管理コンソールに登録済み状態となっているのでスマホからも自宅TrueNAS Scaleへアクセスできるようになりました。
※なお、画面上部の「Active」のスライドスイッチを左へスライドして「Stopped」へすることで、スマホアプリ(tailscale)の接続が切断、「Active」で接続、という使い方になります。
スマホから自宅サーバーへアクセス
では、外出先のスマホから自宅TrueNAS Scaleへ接続してみます。
スマホからもいつも自宅で使っているIPアドレスを使いTrueNAS Scaleへ接続することができました。
また、tailscaleをインストールしていない自宅サーバーOpenMediaVaultへもいつものIPアドレスで接続できました。
まとめ、TrueNAS Scaleで自宅プライベートクラウド
tailscaleは最新のVPNプロトコルであるWireGuardを使って「誰でも簡単にVPN環境が構築できる」サービスです。
さまざまなデバイスにtailscaleアプリをインストールすることでデバイス間がVPN通信できるようになります。
そしてtailscaleアプリケーションは人気のコンテナサービスであるdockerとしても配布されています。
TrueNAS Scaleでdockerアプリを使う
TrueNAS Scaleは旧FreeNASがLinux対応したものです(本来はFreeBSDベース)。
そしてLinuxでは人気のコンテナ環境であるdocker環境を簡単に構築できます。
これにより、TrueNAS Scaleは標準で「プラグインApps」として各種dockerアプリを管理画面から簡単にインストールして機能拡張していくことができるようになりました。
本来のTrueNAS Scaleはストレージサービスとしてデータの保管庫利用が本来のサービスですが、dockerを使った各種アプリケーションにより機能を追加していくことで、Google PhotosやAmazon PhotosなどのようなサービスをTrueNAS Scale上に構築することができます。
tailscaleをdockerアプリとして導入
tailscaleを使えば簡単にVPN環境が構築できるので外出先から自宅のサーバーへアクセスする、ということが簡単にできます。
「簡単に」というのはたとえば「自宅ルーターのポート開放が不要」「自宅のインターネット回線がなんでも良い(複雑なネットワーク定義が不要)」ということです。
さらにtailscaleの「Advertise route」機能を使えばtailscaleをインストールしたデバイスだけでなく、自宅ネットワークを丸ごと外出先から利用できる環境が構築できます。
今回TrueNAS Scaleにtailscaleをインストールしましたが、この「Advertise route」機能があることで、外出先からTrueNAS Scaleだけでなくたとえば自宅のカメラやIoT機器などもすべて(自宅にいるときと同じように)外出先からアクセスすることができます。
TrueNAS Scaleとdockerで自宅クラウド
TrueNAS Scaleにはdockerアプリとして「NextCloud」や「PhotoPrism」など写真・動画の管理アプリも提供されています。
これらを組み合わせることで、自宅のTrueNAS Scale上にGoogle PhotosやAmazon Photosなどと同様なサービスを構築することもできます。
さらに本記事で構築したtailscaleの機能を使うことで、これらのサービスを外出先からも使えるようになります。
特に写真や動画の撮影が多く、クラウドサービスの高額な容量課金に困っている方は自宅のTrueNAS Scaleへの移行を検討してみると良いかもしれません。