Raspberry Pi4を買った
最近仕事でサーバを扱うことが増えてきたのでお勉強用Raspberry Pi4の8GBを購入しました。わいわい。
まずは簡単に何かサーバを建ててみたい、ということでMinecraftサーバを建てました。
※正式リリースされてるRaspberry Pi OSは32bitで割当メモリの制限があったので今はもうこの日記とは違う構成にしてます
ラズベリーパイはちっちゃなコンピュータみたいなものです。
初期設定
Raspberry Pi OSをインストールする。
インストール直後
OSのインストールが終わったらVNCやSSH用の接続設定、UFWの設定、ユーザ周りの変更・設定をしていく。
SSHの公開鍵化も最初にやっておく。
■Minecraftのための設定をしていく
・ローカルIPを固定化する
接続先のIPを固定化するのでまずはおうちのルータのDHCPのリース範囲を見る。
我が家のルータではデフォ設定で192.168.10.100-254をリース範囲にしていた。
今回は192.168.10.2を固定で使用することにした。
/etc/dhcpcd.conf を開いて192.168.10.2をstaticで設定。192.168.10.1はルータ。
・Minecraftで使用するポート(25565)をファイアウォール(ufw)で許可する
ufwで許可するのはローカルIPからのsshとvncとanyからの25565のみ。
それ以外は拒否するように設定。
sudo ufw allow 25565
・家のルータでNATさせる
自宅のグローバルIP宛の通信をローカルのラズパイに振り分けるためにNATをさせる。
よくわからんが僕の家にあるAtermは変換前ポートでtcp_25565を指定できないので、宛先ポートも一緒に変換させる。
今回は適当に13888を採番。変換先ポートは25565。
・fis314.comのAレコードを追加してドメインでアクセスできるようにする。
今僕が持っているfis314.comというドメインを使ってアクセスできるようにAレコードを追加する。
今回はMinecraft用ということで「mc」を設定。fis314.comのネームサーバを設定しているとこでレコード追加する。
mc.fis314.com. 3600 IN A [グローバルIP]
でもこれだとルータ再起動時などで家のグローバルIPが変わったときに繋がらなくなってしまうため、その内Dynamic DNSを設定したいね。
・javaを入れる
java -versionで現在入っていないことを確認してから入れる。
sudo apt update
sudo apt install default-jdk-headless
終わったら再度java- versionで確認
・minecraftサーバを公式からダウンロード
公式からダウンロードする。
sudo wget https://マイクラのURL
・minecraftサーバを起動する前の細かな設定をしていく
-eula.txtをいつものTrueに変えて同意してあげる。
-serverプロパティはとりあえずそのまま
-サーバアイコンを置く(64*64で名前をserver_icon.pngにする)
・サーバのバックアップスクリプトを作る
ここを丸パクリした。
■早速動かしてみる
とりあえず動かす。メモリ割当はとりあえず2GB。
動かすときはscreenした状態でjarファイルを実行する。
sudo java -Xmx2048M -Xms2048M -jar server.jar nogui
正常に動作することを確認。外部からも有志を募って接続ができることを確認。
実際にサーバを公開してみて
4人以上集まると壊したはずのブロックが元に戻ったりする現象が出るなど、弊害はあるものの、普通に遊ぶ分には問題無さそうです。
ただし、多量のTNT等はさすがに止めたほうがいいと思います。実験段階でサーバが落ちました。
最後に
サーバはからっきし初心者なのですが、初期設定からサーバ公開まで結構すんなりいけました。
ラズパイに関するナレッジは日本語でも多量にあるので初心者でも気軽に試せると思います。
仕事でサーバに触れる機会が増えてきたので色々勉強していきたいです。
あと、もしMinecraftのサーバだけが欲しいのであればわざわざラズパイを買わずによくある有名なCotohaだとか公式のRealm使ったほうが安定してて良いと思います。
なお、このサーバは現在も公開していますがホワイトリストモードで起動しているため、
参加されたい方はDiscordに参加の上、キャラ名をご連絡ください^ー^v
Discordサーバ:ふぃすの小部屋
おわり