自前ファイルサーバー(MacMini Mid 2012)とTailscaleを使って自宅のファイルにアクセスしまくってみるの巻!

スターバックスでドリキャスを!

あ〜、自宅にある膨大なHDDのファイル群に外出先からアクセス出来たらなぁ〜〜〜・・・リッピングしたGDI(ドリームキャストのゲームファイル)のバイナリファイルの山にリモートで接続して、スターバックスで「ジェットセットラジオ」や「Rez」をプレイして外野をブイブイ言わせたいなぁ(?)・・・
あ、家にある「SEGA vs 任天堂」の映画とかSEGAの膨大なサントラとか聞き放題にならないだろうか・・・・???

とか何とか考えて早半年ほど経ちました。半年の間に試したのは

  • 「NoIPなど”ダイナミックDNS”」を使って自宅のルーターのアドレスを擬似的に固定する
  • ファイルサーバーにするPCのローカルアドレスを固定
  • ルーターの特定のポートを解放してポート転送設定をする(よく使われるポートは隠す)
  • 他セキュリティ対策

などなど。筆者ANIはど素人で、ひとつひとつネットで調べながら手探りで作業するので、CRON(時間指定で命令を実行する仕組み)の設定やHomebrew(拡張パッケージ)のCUI(コマンドライン)でのインストールなどやっていると1日があっという間に溶けまくります。自宅でWEBサーバーとか監視カメラとか自作でしてる人とかホント凄いですね。
そんなこんなで上記の仕組みで自宅のファイルにアクセスしようと画策していたのですが検索しているうちに海外の掲示板などで

「DDNSでファイルアクセスは絶対やめとけ!」
無料のDDNSは不正アクセスの温床なので外部サーバーのPHPを使いましょう!」

という注意書きや記事を見つけ、「それなら最初に言ってくれ」とうなだれる思いを噛み締めて途方に暮れておりました・・・・・が!!

救世主「Tailscale」あらわる!

はい、ソニックの良き相棒でメカニックの才能もある「テイルス・ケール(違)」の存在を知るのです。

冗談はさておき、「Tailscale」を使うとあら不思議!結論から言うと恐ろしく簡単にVPN(暗号化通信を含むプライベートネットワーク)接続が出来てしまうのです!
半年間悩みまくったのがたった1日で設定終了・・・凄すぎる!

中古の激安Mac miniをサーバーに

さぁ、今日からウチでバリバリ働いてもらうよ〜〜

筆者ANIはCUI(テキストベースのコマンドライン)は苦手でほぼGUI環境(Mac,Windowsなどに代表されるマウス操作のオペレーション)しか使えず、お金が無いのでファイルサーバーを組むとしたら選択肢はLinuxかなとも思うのですが

  • クイックルック(Macのファイル内容表示機能)が使える
  • クライエント(接続しようとする側のPC)がMacなのでAPFSファイルフォーマットが使えると何かと便利
  • 兎に角ファイル共有などのサービス設定が超簡単
  • 何だかんだ言ってWindowsファイル共有(SMB)にも対応している
  • 激安(ラズパイよりも安くてポート[USB:3.0]も充実)

以上の点を踏まえて「Mac miniの中古(2012年発売版)」をメルカリで激安(5000円くらい)で購入。それをサーバーとして使うことにしました。ポイントは「2012年製」がUSB3.0ポート採用の最初のバージョンという点です。それ以前のMac miniのバージョンはUSB2.0なので転送速度が10倍程違います。
その他詳細は検索すると出てくると思うのでここでは省きますが「メモリ増設(16GB)」「OCLP適応(OSはSonoma)」などして、そこそこパワーアップします。

「Tailscale」とは

外部ネットワークから特定のローカルネットワークに繋ぐ際には通常VPN(ヴァーチャルプライベートネットワーク)を使ってトンネル化して通信を暗号化(これをしないと通信が丸見え)したり、アドレス設定やファイヤーウォールの構築をしないといけないと思われるのですが、これらをまるっと設定してサーバーとクライエントをP2P接続して外部に居てもあたかもローカルネットワークにいるかの様な快適な通信が出来るというアプリケーション&サービスです多分。
良く知ってる方は「あははこやつめ」と笑い飛ばしながら読んでください(by:kinako

「Tailscale」のインストール

まずはサーバー側とクライエント側にTailscaleをインストールします。サイトにアクセスして右上の「Get Started」をクリック。Googleアカウントなどでログインして登録を済ませ、アプリケーションをインストールしましょう。

Tailscaleのサイト右上からスタート
アカウントを一括出来るので接続するマシンが増えてもラクです。2段階認証もあって安心?

サーバー側の設定

MacOSの場合、Tailscaleをインストールしたあと、

  • 起動項目としてTailscaleを登録
  • Tailscaleで自分のアカウントを使ってログイン
  • ファイル共有設定のオン
    • 「システム」設定で「一般->共有」からファイル共有をオンにする(smbもオンにすると良いかも)
    • デスクトップで使いたいボリュームを選択して右クリック(若しくはコマンドI)で「情報を見る」から「共有」をオン
    • 各ボリュームのパーミッション(アクセス権)を設定

一旦ローカルでアクセス出来るか試して大丈夫だったらOKです。
可能ならばクライエント側のTailscaleもオンにしてローカルに居ながら接続テストもしてみましょう。
細かい設定はここでは省きますが、「Macをファイルサーバー」などで検索すると山のように出てくるはず!

サーバー側の画面。ていうか普通の見慣れたデスクトップですね!

クライエント(サーバーに繋ぐ方のパソコン)の設定

クライエントPCも同じく「Tailscale」のサイトに飛んでアプリをダウンロード、インストールしましょう。この時上記でサーバーでアクセスした時と同じアカウントで登録して下さい。サーバー、クライエント両方にアプリを入れたら両方とも立ち上げたまま、セッティング画面へ移動して「Admin Console」のボタンを押すと「Tail Scale」のコンソールに飛ぶことが出来ます。コンソールからそれぞれ登録したPCの一覧が表示されます。「Connected」とあれば接続中なので成功です。

OSのメニューバーから登録されたデバイスを表示、アドレス確認が出来る
「コマンド+K」でサーバーに接続
TailScaleのコンソールで接続状況や設定が出来る

ドリキャスを置いて街へ出よう(外部からの接続テスト)

さて、同じネットワーク環境内からTailscaleを使ってファイルサーバー側にアクセス出来たら今度は外に出て実際外出先から試してみましょう〜!
取り敢えず近場のWifiのあるカフェなどで試してみます。
今回は「Flycast」というドリームキャストのエミュレーターをクライエントに入れて、実際のゲームのファイルをサーバー側に置いてちゃんと動作するのか等テストしてみます!

自宅のファイルサーバーにあるシェンムーがヌルヌル動きます!

ムービーのストリーミングもスルスル!

DVDのイメージファイルをマウントしたものとmp4動画を同時に再生してみる。どちらも遠隔のサーバーにあるものです。

「どこでも自宅環境」&「ファイル操作はサーバー任せ」で

「MUSIC」も遠隔のファイルのライブラリを聴くことができる
膨大な量のファイル移動やコピーなどの管理は「リモートデスクトップ」でサーバー側にやらせよう。
クライエントPCを閉じても作業を続けてくれる(当たり前だが)。

「どこでもオフィス」という言葉がありますが、安定したネット環境さえあればノートPC一枚で「どこでもおうち環境」が築けてしまいました!
実はこの「Tail Scale」はスマートフォンにも対応しているので、家のファイルサーバーにスマートフォンからファイルアクセスすることも出来ます。Wifi環境がある場所ならばスマートフォンの内蔵容量などを気にせず家のファイルサーバーのデータにアクセス出来て便利かも知れません。少し前に「おうちクラウド」なんてフレーズもあったりしましたが、非常に簡単に構築出来てしまうので非常にオススメです!

今回は主にゲームは「ドリームキャスト」を使いましたが「PCSX2」などで「プレイステーション2」のセガの名作群などを遊んでみるのも一興ですね!

特にヨッシー!!膨大な家のライブラリに出先のWi-Fi環境でアクセスして「iPad」などでプレイすることができるのでサイコーにオススメだ!!
それではまた!

ani

直球のSEGA原理主義者。生まれて初めて買ったゲームは「セガMark III」ゲームとお酒が大好き

おすすめ

2件のフィードバック

  1. ザッキー より:

    おお、tailacaleって知りませんでした!
    今はこんな便利なVPNがあるんですか!
    出先で自宅にある音楽聴いたり写真見れるのって便利ですよね
    ちょっと調べてみます😄

    • ani より:

      まぁ、3・4万円くらいでNASを買ってしまえば済むと言われればそうなんだけど、自作するのもまた一興ですね!
      僕はHDDのUSBストレージボックス持ってたので実質5000円で済んだのと、工夫次第で色々出来るのは楽しいね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です