動機
マンションに引っ越して家が二重ルーティング環境になり、ポート開放をしても外部ネットワークからアクセスできなくなってしまった。同時にマインクラフトサーバーも二重ルーティングを突破できないため、友人の接続が不可能に。そこでお金をかけたくなかった私は、tailscaleを用いて安全にサーバーに接続することができるようにした。
導入
サーバーにtailscaleをインストール
まずはMinecraftサーバーが入っているTrueNASにtailscaleをインストールする。Youtubeなどにたくさん動画が転がっているので参考にしてほしい。大まかな流れは以下の通り。
- まずは公式サイトからアカウントを作成して、設定(settings)から接続用の
keyを取得する -
appsからDockerイメージをインストールする際にそのキーを利用して接続する - 公式サイトに戻り接続を確認する
minecraftサーバーを用意する
minecraftサーバーを用意するのだが、ここで私はcrafry4をおすすめする。事前に作っている場合はそのまま利用してもいい。crafry4はGUIで簡単に複数のサーバーを管理でき、(おそらくmodサーバーも作れたはずだ。)これもYoutubeに導入動画が多く転がっている(英語が多い)。これも大まかな流れを紹介する。
-
Datasetsにcrafty4用のフォルダを作成する。(権限は後々設定する) -
backupconfigimportlogserversの5つのフォルダを作成する - 1で作成したフォルダの権限(Permitions)の
USERGROUPを両方appsにし、
「Apply permissions recursively(権限を再帰的に適応)」と「
Apply permissions to child dataset(子データセットにも権限を適応)」の両方にチェックを入れる -
appsからcrafty4を探しインストールする -
TimezomeをAsia/Tokyoに、Additional Portsにminecraftで設定する用のポートをTCIとUDPの両方設定(ここはよくわからない)、Storage Configurationで先程作成したフォルダ5つを指定、インストールボタンを押下 - インストールが完了したら
webUIを開きログインする(ログイン情報はconfig/default-creds.txtに格納されている。) - サーバーを作成する
tailscaleへの接続設定
クライアント側のtailscaleをサーバーに接続する。ACLを用いてアクセスできるポートをマインクラフトサーバー用の25565のみに制限する。手順は以下の通り。
- tailscaleの設定用webページから追加したサーバーの
Tailscale IPアドレス(100.x.x.x)をメモする -
Access controlsページのAdd ruleからルールを追加する -
sourseをautogrope:shared(詳しくはドキュメントを参照)、DestinationをメモしたサーバーのTailscale IPアドレス100.x.x.x、port and protocolをtcp:25565とudp:25565に設定。(マインクラフトのサーバーのIPアドレスに応じて追加していくと良い) -
Noteはわかりやすいようになにかメモを残しておく部分 -
Save grantを押してACLを保存
ACL設定が完了したら、マインクラフトサーバーへのTailscale接続リンクを発行し、接続を確認する。手順は以下の通り。
- Tailscaleのメインのページからサーバーのマシーンの右端の三点リーダーの隣の
Shareを押す -
Copy share linkを選択し、Allow use as an exit nodeをオフにする ⇐これをしないと、クライアントの端末は常にサーバーを介してネットに通信するようになる -
Reuseble linkをオンにすると複数使えるリンクを生成する -
Copy share linkをクリックして、コピーされたリンクを共有する
minecraft の接続
クライアントにサーバーのマシーンのTailscale IPアドレス``(100.x.x.x)を入力してもらい、接続をする。
参考
ステップバイステップガイド:TrueNAS SCALEでTailscaleを設定する方法
https://youtu.be/o0Py62k63_c?si=-W-DmBnMNae1OfE3