NASへのリモート接続にTailscale

こんにちは。

最近、自宅のNASにリモート接続するためにTailscaleをインストールした体験を共有したいと思います。私はQNAP MyCloud Linkを使いたくなかったので、数年間OpenVPNを使っていました。OpenVPNサーバーはQNAP NASで、Qfirewallを設定して接続を許可していました。自宅のルーター/モデムでポートフォワーディングも設定していました。最近、ルーターの設定が消えてしまい、再度ポートフォワーディングを設定し直しました。すると、ルーターが有効化した途端に大量の警告を出すことに気付きました。以前もその警告を見たことがありましたが、それがポートフォワーディングによるものだとは知りませんでした。

調べてみると、そもそもポートフォワーディングは良い方法ではないと分かりました。そしてTailscaleを見つけました。Tailscaleはとても簡単で安全な接続を約束していました。ウェブサイトを見ると、こんな説明があります:「A Zero Trust identity-based connectivity platform that replaces your old VPN, SASE, and PAM and connects remote teams, multi-cloud environments, CI/CD pipelines, Edge & IoT devices, and AI workloads.」:unamused_face::man_shrugging: 私はただ写真を保存するNASが欲しいだけで、これらの意味は全く分かりません。

このツールは多機能ですが、主な役割は複数のデバイス間で安全なネットワーク接続を作ることです。これにより、いろいろなことができるようになります。サーバーやクライアントという概念はなく、ピアだけです。1台のデバイスから使い始めることができます。認証が必要で、外部認証を使う仕組みなので、Google、GitHub、Microsoft、Appleなどの外部アカウントでログインしなければなりません。

このページ Access QNAP NAS from anywhere · Tailscale Docs には、ARM 64プロセッサで動作すると書かれており、私のQNAP TS-216GもARMプロセッサです。もしアプリセンターでアプリが見つからない場合(私のように)、このリンク https://pkgs.tailscale.com/stable/#qpkgs からダウンロードできます。バージョンはいくつかあり、arm-x19、arm-x31、arm-x41、arm-64、x86、x86_64、x86_ce53xxがあります。違いはよく分かりませんが、自分のNASがARMプロセッサだということだけは分かっています。色々調べましたが、どれを使えばいいか情報は見つかりませんでした。私はarm_64ファイルを手動でNASにインストールし、うまく動きました。

アプリを開くと、大きなボタンがあり、それを押すとインターネット上のtailscaleサインアップページが開きます。そこでプロバイダーのいずれかで認証する必要があります。この時選んだメールアドレスがネットワーク名兼オーナーユーザーになるようです。このステップの後、qnapがネットワークに接続され、100で始まる特定のipアドレスが割り当てられます。同じメールアドレス(ユーザー)を使って他のデバイスもネットワークに追加できます。各デバイスには独自のipアドレスが割り当てられます。最終的には、ネットワークにさらにユーザー(メールアドレス)を追加して、さらに多くのデバイスを追加できるようです。

私はAndroidスマートフォンにもtailscaleをインストールし、同じメールアドレスでサインインしました。これで両方のデバイスが同じtailscaleネットワークで接続されました。これにより、それぞれのtailscale ipアドレスを使って、異なるネットワーク上にいてもお互いにアクセスできます。各デバイスは、通常のネットワークのipアドレスと、tailscale ipアドレスの2つのipアドレスを持つことになります。ルーターの設定は何も変更していませんが、今やNASはローカルネットワーク外のAndroidスマートフォンからアクセス可能になりました。

tailscaleデバイスは、通常のネットワーク上の他のIPアドレスへのルートを開くように簡単に設定できます。例えば、tailscaleで接続されたNASが自宅ネットワーク内のプリンターへのルートを開くことができます。これで、ホテルにいるAndroidスマートフォンから自宅のプリンターにホームipアドレスでアクセスできます。もしプリンターにTailscaleをインストールできれば、NASでルートを開く必要はありません。これはTailscaleを実行できないデバイスに便利です。

スマートフォンのqfileでは、NASのローカルipアドレスを設定しているので、自宅では直接NASに接続します。OpenVPNを使っていた時は、VPNを起動すると仮想的にローカルネットワーク上にいることになり、NASに接続できました。しかし、tailscaleで接続すると、ホテルにいるスマートフォンはNASのローカルipアドレスではなく、tailscale ipアドレスを見ることになります。qfileでNASにアクセスするには、qfileアプリのipアドレスをtailscale ipアドレスに変更する方法があります。ただし、帰宅したらまたローカルアドレスに戻す必要があります。qfileはipアドレスを一度書いてそのまま使う設計なので、これは理想的ではありません。

もう一つ私が試している解決策は、NAS自身へのルートを開くことです。これにより、qfileは通常のローカルipアドレスで再びNASにアクセスできます。あまり意味があるとは思いませんが、動作します。もう一つの方法は、ipアドレスの代わりにローカルホスト名を使うことです。この方法はローカルでは動作しますが、私の自宅ネットワークのサブネットはホスト名とうまく連携しません。なので、これ以上は調べていません。

今のところ、tailscaleはNASとのリモート接続を確立するのに使えることを確認できました。ただし、長時間のセッションでどれくらい速くて信頼できるかは分かりません。そして、使い方が分かった今なら、設定は簡単だと言えます。VPNのとても良い代替手段だと思います。

最適な方法は、NASではなくルーターにVPNエンドポイントを設定することです。

よろしくお願いします

こちらの投稿もご参照ください。

基本的に、TailScaleで行っていることは、QNAPとそのMyQNAPCloud.comポータルで最終的に行うことと同じです。TailScaleをNASへのプロキシとして使用しています。

TailScaleの方が速いかもしれません。というのも、MyQNAPCloudポータルは台湾にあるQNAPサーバーを経由しなければならないからです。しかし、全く設定が不要で、非常にうまく機能します。

とはいえ、ルーターでVPNを設定するのが本当に最善の方法だという点には同意します。

TailScaleは、MyQNAPCloudポータルが台湾のQNAPサーバーを経由する必要があるため、より高速かもしれません。

「TailscaleはWireGuardプロトコルを使用して、デバイス間に直接かつ暗号化された接続を確立します。この場合、データはTailscale社が所有するサーバーを経由せず、パブリックインターネット上でデバイス間を直接転送されます。」

完璧です!Tailscaleが自社サーバーを経由するのか確信が持てませんでした。確かにずっと速いですね…

貴重なご共有、誠にありがとうございます。あなたのご経験やご意見は、私たちや他のコミュニティユーザーにとって非常に参考になります。改めて、当社製品へのご支援に感謝申し上げます。

コメントありがとうございます。私のささやかな自宅のルーター/モデム自体ではVPNを動かすことはできませんが、tailscale(テイルスケール)は今のところとても快適に動作しています。:grin:

この素晴らしいレビューをありがとうございます。私はTailscaleをほぼ1年間使っており、とてもとても満足しています。私はいくつか異なる用途で使っているので、それらと全体的な体験を共有したいと思います。

しばらく経っているので、以前何をしていたか正確には覚えていませんが、おそらくmyQNAPcloudを使って自宅ネットワークに接続し、ルーターのVPNポートを開放し、QNAP TS-464でQVPN Serverを稼働させていました。この方法でも動作はしましたが、その結果、1日に何度も管理者アカウントへのログイン試行がありました。もちろんアカウントは無効化していましたが、それでも心配でした。

私の利用目的は2つありました。1つは旅行中でもNAS上のデータにアクセスしたいということ、そしてもっと重要なのは、私はアメリカに住んでいてヨーロッパ(スロバキア)にもアパートがあるため、Apple TVの通信を米国の自宅経由にしてNetflixやPrime Videoなどを視聴できるようにしたかったのです。これらのストリーミングサービスは海外からアクセスすると視聴できるコンテンツが大幅に制限され、標準的なVPNではほとんどの場合サービス側に検知・ブロックされてしまいました。

全体として、QNAPのVPNソリューションは悪くはなかったものの、あまり信頼性が高くなく、ハッキング試行に対する不満もあって他の方法を探し始め、そこでTailscaleを知りました。本当に見つけて良かったと思います。

Tailscaleでは、元の投稿者が述べている通り、クライアントサーバー型のアーキテクチャではなく、ピア同士のネットワークです。そして各ピアがTailscaleソフトウェアを実行してネットワークに接続します。利点の1つは、ルーターのVPNポートを閉じることができることです。ネットワークに接続するのにVPNポートは必要ありません。

さらに、1つまたは複数のノードを「Exit node(出口ノード)」として指定でき、ネットワークに接続した際にどの出口ノードを使うか選択でき、ローカル以外の通信はそのノードを経由します。私はApple TVにTailscaleアプリをインストールし、常にネットワークに接続してQNAPを出口ノードとして設定しています。その結果、全てのストリーミングサービスが問題なく利用できます。また、旅行中でもMacやiPhone、iPadから接続してストリーミングも可能です。

最近、スロバキア政府のウェブサイトにアクセスする必要があったのですが、国外からはブロックされており、VPNからのアクセスも遮断されていました。しかし、Apple TVを出口ノードに指定し、米国からTailscaleネットワークに接続してApple TVを出口ノードにすることでアクセスできました!

最後に、もう1つできることとして、サブネットを設定してTailscaleソフトウェアが動作していないネットワークリソースにもアクセスできます。例えば、QNAPやApple TVを経由して自宅のルーターや他のデバイスにアクセスできます。

まとめると、Tailscaleを見つけて本当に良かったです。私は無料プラン(ユーザーは3人まで、デバイス数ではなく)を使っていますが、私と妻でMacBook、iPhone、iPad、Apple TV1台を使うには十分ですし、どこからでもストリーミングできています。とてもおすすめです!

Tailscaleについての素晴らしい情報をありがとうございます。特に、出口ノード(exit nodes)を指定できるなど、とても興味深いですね。本当にクールです!

振り返ってみると、「旅行中に動画を見る方法」で検索して見つけたのだと思います。これは素晴らしいユースケースです。しかし同じくらい重要だったのは、ルーターのポートを開放せずに済み、ハッキングの試みに悩まされないことでした。

それに、とても簡単に試せます。QNAPやデバイスにインストールするだけです。無料ですし、他のVPN設定をそのまま残しておくこともできます。私はそうしました。ちゃんと動作することを確認した後、他の設定を削除しました。

こんにちは。

アプリを必ずスマートフォンで起動しておく必要がありますか?それとも、割り当てられたアドレスにアクセスするだけで十分ですか?アプリがないとNASにアクセスできません。

ご質問の内容が不明確です。これはVPN接続ですので、目的地にアクセスするにはクライアントが起動している必要があります。

また、正しい言語で投稿するようにしてください。

こんにちは、TS-453Aでこれをセットアップしました。Tailscale上でNASが利用可能なのは確認できていますが、https://mynas.<tailscale_domain>/cgi-bin ではアクセスできません。QTS管理画面にアクセスするには、どのポートを使えばいいのでしょうか?ローカルネットワークでは https://mynas/cgi-bin でアクセスしています。

アイデアや解決策があれば、ぜひ教えてください。よろしくお願いします。

こんにちは、tailscaleを使うときは通常、(tailscaleの)IPアドレスを使ってqtsポータルにアクセスしています。例えば、ノートパソコンをtailscaleに接続して、ブラウザでこのアドレスを使用します: 100.x.x.x:8080/cgi-bin。IPアドレスは、トレイバーのtailscaleアイコンをクリックし、「My devices(マイデバイス)」の下でデバイスを選択すると確認できます。

こんにちは

Tailscale に関する素晴らしい解説をありがとうございます。最近 OpenVPN から Tailscale に切り替えることにしたのですが、Windows 11 PC から NAS にアクセスしようとした際にいくつか問題に直面しています。

基本的にはうまく動作しています。ただ、NAS の設定を厳しくして、どのクライアントがドライブにアクセスできるか制限したいと考えています。NAS の「コントロールパネル」→「権限」→「共有フォルダー」ダイアログで操作しています。

特定の共有フォルダーを選択して「共有フォルダーのアクセス権を編集」をクリックすると、新しいダイアログが開きます。そこで「アクセス権の種類を選択:」ボックスから「Microsoft ネットワーキングのホストアクセス」を選びます。

ここで、Tailscale ドメイン内のホストだけにアクセスを制限したいと思っています。

この設定でいくつか試してみました・・・

  • 制限を設けない場合、問題なく接続できました。

  • 特定の IP アドレス(例:Win11 ホストの Tailscale IP アドレス)を指定した場合も動作しました。

  • しかし「\*.tail<some_hex_num>.ts.net」のように、すべての Win11 クライアントにマッチするはずのワイルドカード(some_hex_number は Tailscale ネットワーク用に生成された番号)を指定すると、アクセス拒否されます。

NAS の DNS 設定では Tailscale の MagicDNS を使用するよう設定しています。ssh を使って次のように確認できました:

$ ssh me@my_nas 
me@my_nas's password:
[me@my_nas ~]$ getent hosts my_win11_host
100.XX.YY.ZZ    my_win11_host.tailXXXXXX.ts.net
[me@my_nas ~]$

ここで 100.XX.YY.ZZ は実際の IP アドレスですが、ここでは伏せています。

XXXXX は Tailscale によって生成された 16 進数のコードです。

QNAP システムでこれをうまく機能させている方はいませんか?

NAS がどのようにしてクライアントのアドレスを参照・判定しているのか、ご存じの方がいたら教えてください。また、smb.conf でホスト名照合を有効化する必要がありますか?あるいは QTS コントロールパネルの共有フォルダー GUI でその設定が可能なのでしょうか?

アドバイスいただけたらありがたいです。

Ian

私の QNAP は TS-451D2、ファームウェアは QTS 5.2.11.3661 の最新バージョンです。

それで、なぜあなたがこれをする必要があると感じているのか、ぜひ教えてほしいです。他の誰もあなた以外はTailscale経由でNASに接続しません。それがVPNの本来の目的です。

あなたのNASは、どこにあるローカルネットワーク上に配置されているとしても、TailscaleはWireguard VPN接続を利用し、リレーサービスを使って、ルーターの設定をしなくてもVPNを通じてNASにアクセスできるようにします。他の誰もアクセスできません。

それにTailscaleクライアントだけにアクセスを制限すると、LAN上のクライアントは接続できなくなります。

Tailscaleドメイン内のホストについて話すとき、複数のユーザーがTailscale経由で接続しているのですか?もしそうなら、各ユーザーにログインアカウントを割り当てて、それぞれアクセスできるフォルダを制御したほうがいいでしょう。

あなたが直面している問題は、ホスト名がDNSに登録されていないことだと思います。もしあなたのNASでPiHoleのようなDNSサーバーを動かしていれば、ホストをシステムに追加できたでしょう。私はTailscaleは使っていないので細かいところまでは分かりませんが、TailscaleネットワークはLANから分離された独立ネットワークとみなされるのではと想像しています。ですので、仮にDNSサーバーを運用していても、対象のネットワークアダプタごとにカバーするネットワークを正しく設定しないといけないので、ややこしくなります。NAS側でhostsファイルを作成できるかどうかは分かりませんが、もしかしたらできるかもしれません。

もう一つ気になるのは、あの16進数の値はログインごとに変わるのかということです。多分変わらないとは思いますが、その点は私には分からないです。