はじめに
仲間内でマイクラMODサーバーやりたいなということで立ててみました。ほとんどForge君がやってくれます。
ハードウェア
本体
高くなってますね...最新のRaspberry Pi 4にしました。
MOD入りということでRAM8GBを買いました。
microSDカード
ラズパイで記憶領域となるのがmicroSDカードです。
microSDカードってこんな安いんですね。1TBとか出てて驚きました。
あまり使わないだろと思い、64GBを買いました。
microHDMIコード
ディスプレイとラズパイを結ぶコードです。Raspberry Pi 4には二つポートがあるので今後デュアルモニターになることも考えて干渉しないものを買いました。正直なんでもいいと思います。
TypeC充電器
Raspberry Pi 4はUSB TypeCを電力とします。家にあったTypeC充電器をつなげてみても特に問題がなかったのでそれをつなげています。
ラズパイには電源ボタンはないので電源を繋ぐと電源がつくようになってます。他のコードなどをつなげてから最後に電源を繋ぐとよいです。
本題
今回はOSはRaspbian(64bit)
にしました。他のOSでも大丈夫ですが、メモリの関係上64bitにするといいと思います。
java17をインストールします。してたら大丈夫です。
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install openjdk-17-jdk -y
バージョンを確認します。
$ java -version
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment (build 17.0.6+10-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1deb11u1, mixed mode, sharing)
ここであらかじめ、今回サーバーを構築するディレクトリを作っときましょう。自分はDocuments/minecraft/
にしました。
Forgeからお好きなバージョンのForgeInstallerをダウンロードします。
ダウンロードした.jar
を実行します。
$ cd Downloads
$ java -jar forge-1.19.2-43.2.0-installer.jar
バージョンによって名前が違うので注意です。
するとインストーラー画面が出ると思います。Install Server
を選択し、先ほど作ったディレクトリを指定します。
OK
を押したらあとは放置です。
成功した旨のメッセージが出たら生成されたrun.sh
を実行します。
終わったらeula.txt
が生成されているはずなのでこれを編集します。
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Mon Mar 20 13:56:52 JST 2023
- eula=false
+ eula=true
また、割り当てるメモリをuser_jvm_args.txt
で編集します。
# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M
# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
+ -Xmx4G
+ -Xms4G
4GB割り当ててみましたが正直大量にMOD入れると足りないと思います。自分はZRAM
で12GBほどSWAPしているのでここを16GBほど割り当てていますがどうなんでしょうか...。ZRAM
については以下の記事がめっちゃ参考になります。
最後に表示されるGUIがウザいのでnogui
オプションを追加します。
#!/usr/bin/env sh
# Forge requires a configured set of both JVM and program arguments.
# Add custom JVM arguments to the user_jvm_args.txt
# Add custom program arguments {such as nogui} to this file in the next line before the "$@" or
# pass them to this script directly
- java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.2.0/unix_args.txt "$@"
+ java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.2.0/unix_args.txt "$@" nogui
最後に実行すれば完了です。
$ ./run.sh
modsなどのディレクトリはこの時生成されます。
バージョンが違うと、run.sh
などがない場合があります。その際はWindowsと同じようにできるのでそのバージョンんで調べてみるといいと思います。
現在のipアドレスを調べます。
$ ifconfig
自分は無線を使ってたのでwlan0
の項目を見ればいいのですが、有線の場合はeth0
の項目にipアドレスの項目があると思います。ipアドレスを固定します。/etc/dhcpcd.conf
を編集します。
今回は仮にipが192.168.X.Y
でnetmaskが255.255.255.0
だった時のことを考えます。このnetmaskの場合はすべてのipは192.168.X
までが一致している形になります。
# 前略
# fallback to static profile on eth0
#interface eth0
#fallback static_eth0
interface wlan0 # 有線の場合はeth0
static ip_address=192.168.X.Y/24
static routers=192.168.X.1
static domain_name_servers=192.168.X.1
最後に、ご使用のルーター設定で192.168.X.Y
のポート25565
を開くように設定してください。
グローバルipアドレスを以下のサイトで確認できます。
アクセスできるかどうかは以下のサイトで確かめることができます。
ホスト名(FQDN) または グローバルIPアドレス
にグローバルipアドレスを入力し、チェックポート番号
に25565
を入力すれば調べてくれます。
Mods
フォルダにMODを入れてワールドを立ち上げましょう。
マイクラ側
このサーバーにアクセスするにはForgeInstallerで今度はInstall Client
を選択し、Forgeをインストールする必要があります。また、サーバー側と同じModをMods
ファイルに準備する必要があります。(なお、Client MODと呼ばれる、Client側のみで動くMODはサーバー側には必要ありません)
Forgeをインストールした状態でランチャーを開くと、Forge版のバージョン選択ができるはずです。できなければ起動構成から新しい起動構成を作ってください。
Minecraft Java版を起動したらサーバー追加でサーバーアドレスにさっき調べたグローバルipアドレスを入力。仲間内でipは共有しときましょう。なお、サーバー名は自由に決めることができます。
鯖主が接続する場合
私の場合、鯖主である私だけグローバルipアドレスでは接続できず、ローカルipアドレス(つまり、192.168.X.Y)で接続できました。ラズパイでマイクラをしているわけではないのですがこうなってしまいます。インターネットに詳しくないのでとりあえず放置してます。
さいごに
ラズパイを買って正解でした。鯖のON/OFFとか必要ないし、小さいので場所も電力もとりません。また、可能な限り今回はコマンドやvimを使ってみました。linux系のいい勉強になりました。
それでは、良きマイクラライフを!