LoginSignup
2
1

安全・手軽なマインクラフトサーバーを作りたい話。Part 1

Last updated at Posted at 2024-03-09

発端

マインクラフトサーバーとして、安心・手軽とはどのようなものだろうか。
基本的なマインクラフトサーバーの作り方は、この記事を見ている人ならば既にご存知であろう。単純なマインクラフトサーバーにおいて安全でない部分としてポート開放というものがある。

そしてこのポート開放を安全に行うには、ある程度の知識手順が必要なことからも手軽ではない。

本企画の目的は安全・手軽なマインクラフトサーバーを作ることにある。

先行事例

本企画は勉強のために既存のサービスを再現する形となる。

えずこ氏が開発したSecureShare.netでは、ポート解放を必要とせず、サーバーの公開を安全なものとすることができる。尚、プレイヤーは従来同様にアドレスとポートを入力すればサーバーにアクセスできるため、手軽さはそのままである。

詳しいロジックは上記のサイトに記載があるため、参考にしてほしい。

実現方法

SecureShareNetの説明にもあるとおり、リレーサーバーというものを間に挟むことで実現している。
よって今回は以下のように、リレーサーバーサーバーPCアプリケーションを追加することで実現をしようとしている。
image.png

各セクションでの動作内容を整理する

Player層

  • 各プレイヤーは通常のサーバーにアクセスするのと同様にアドレスポート番号を入力することでサーバーにアクセスしたと認識する
  • だが実際にはクラウド上のリレーサーバーにアクセスを行う
    Player側からは通常の認識同様の動作が期待できるため、今回はPlayerセクションに変更は加えないこととする。

サーバーPC層

  • 通常のサーバーは外部からのアクセスを許すことで通信を確立するが、本構造においてはサーバーPC上に存在するアプリケーションから、クラウド層に存在するリレーサーバーにアクセスすることでデータのリクエストを行う
  • リレーサーバーにPlayer層からの通信が存在した場合にアプリケーションにはリレーサーバーにリクエストした圧縮データが返ってくる
  • 圧縮データを解凍し、マインクラフトサーバーにアクセスすることで通信が確立する
  • この際、マインクラフトサーバーからはPlayerがアクセスしてきているのと同様に見えているため、マインクラフトサーバーは通常のものと同様に動作する

クラウド層

  • リレーサーバーは通常のサーバー同様にポートを開放し、Playerからのアクセスを待つ
  • Playerからのアクセスがあった場合、動作クロック内の通信内容を圧縮してサーバーPCからのリクエストに応える
  • サーバーPCからデータの返答があった場合、Player層からのリクエストに返答する形でデータをPlayer層に返す

Part 1を終えて

Part 1は以上となる。
実現可能性および、今後必要な知識や制作範囲の決定が行えたため、目標達成とする。
次回に続く。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1