どうもふぃすです。
最近引っ越ししました。
引っ越し前の環境
引っ越し前は厳密には違うけどこんな感じ↓だった。ここでは割愛。
新居ではなぜ以前のように接続できなくなってしまったのか
以前の賃貸ではドコモ光を通していたが、今回はJ:COM In My Room(1GB)に変わり、ゲートウェイのONUにアクセスができず、以前のようなDNATができない環境になった。
さらにGIPは居室側と実際のWAN側とで異なる状況であるため、単純なサーバ公開ができなくなった。
いわゆる昔のゲームとかであったポート開放みたいなのができない状況なのである。
代替案としてCloudflareのトンネル機能を使おうかと思ったがCloudflareの無料版ではトンネル化できるのはhttp/httpsのみだけであった。
※一応できなくはないのだが、その場合クライアント側でcloudflaredの導入が必要になってしまい、参加者側に負担がかかるので見送ることにした
さらなる代替案として
色々調べた結果「Plyait.gg」というサービスを使うことにした。
Cloudflare Tunnelと同じトンネル方式かつ、参加者側が上記のようなcloudflaredを導入せずに以前と同じように接続できるサービス。
まずはplayit.ggにアクセスしてアカウント作成

次にサーバー側に入れるエージェントを導入する。playitと連携するためのもの。
今回の環境はLinuxなので必要なものをサーバー上でインストールする。

エージェントのインストールが終わったら次にサーバー側で以下コマンドを実行して連携させる。
#playit
playitを起動するとセットアップのためにこのリンク行けと言われるので認証URLに向かう。

次にトンネルの設定をする。
playitでは最初からMinecraft用の設定プロファイルがあるからそれを選択。
リージョンは他のを選択すると有料になるが、Global Anycastでも自動で東京になるっぽい。

これでトンネル設定が完了。

ここのhoge.joinmc.link(仮名)がそのままふぃす鯖への接続先になる。
ただこの接続先名のままだとちょっと気持ち悪いので自分で管理しているドメインで接続させるようにする。
ここでplayit.ggの有料プランの中に外部ドメインを利用できるようになるサービスがあるが、そもそもDNS設定でSRVレコードを追加すれば簡単に転送できるのでそれ目的だけで課金するのは罠だ。というわけでDNS側の設定で以下のような内容でSRVレコードを追加しておく。
ホスト名: _minecraft._tcp.mc
タイプ:SRV
優先度:0
重み:0
ポート番号:25565
内容:hoge.joinmc.link
TTL:3600
これで従来の「mc.fis314.com」でアクセスできるようになった。

ちなみにCNAMEで転送させることもできるが、その場合はポート番号を渡せなくなるので接続時に「mc.fis314.com:25565」と入力する必要がある。
今回わざわざSRVレコードにしたのは「mc.fis314.com」だけで接続できるようにするため。

おっしゃこれで一件落着や^ー^
と思ったら

サーバに接続できませんの表記。実はこれ普通に接続できるのだがSRVレコードで転送させた場合、Minecraft上では転送先のサーバ情報までは取得できないらしい。
以前の環境ではAレコードでGIPと紐づけていたが、ドメイン転送は対応していないらしい?CNAMEでも同じ結果になった。

ちなみにhoge.joinmc.link(仮名)でサーバを追加すると問題なく生きているように見えるし、現在の参加メンバーが見れた。
※ちなみに一番上はローカル接続用
というわけでとりあえずドメイン転送はできるがリスト上の表記に問題が生じる結果となった。接続自体には問題ないけれども。
playitで課金したらたぶんドメイン転送する必要がないからリスト上で見れるようになったりするのかな?
おわりに
以前の環境とは違い、今回は実質リバースプロキシみたいな形で中継する接続構成になってしまうので通信品質は下がってしまうのが懸念される。
というか普通に計測すると結構重いのでかなり厳しい環境になってしまった。
なんとか動かせるようにはなったけど正直ここまでやるくらいならもはやレンタルサーバーのほうがいいんじゃないかとか思う。
おわり