MInecraft Sever を Rraspbian で立てる
見よう見まねかつお遊び程度でやってます。
いろいろ躓いたけど動作までできたので記録として残してます。
Usb boot でSSDを使っていることを前提にします(後日Raspberry pi の USB Bootに関しては記事にするつもり)
基本概要
- Raspberry pi 4 model B 4GB
- usb接続SSD 256GB(余ってたやつ)
- OS : Raspbian
- 同接6人程度で24時間稼働を目標
ufw でポートのセキュリティ対策
$ sudo apt install ufw
$ sudo ufw deny
$ sudo ufw allo 22, 25565
$ sudo ufw enable
// 22はSSH, 25565はMinecraftで使用するポート
// SSHに関してはポートを変えた方がセキュリティ対策的にいいと思います
念のためにファイアウォールの状態を確認
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
25565/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
25565/tcp (v6) ALLOW Anywhere (v6)
端末側でIPの固定
LAN側のRaspberry pi 側のIPを固定
$ sudo vim /etc/dhcpcd.conf
// Example static IP configuration を参考にして固定化
// 下記は有線eth0、xは環境に合わせて設定
interface eth0
static ip_address=192.168.x.x/24
static routers=192.168.x.x
static domain_name_servers=192.168.x.x
( my domainと紐づける場合はグローバルIPをdomainの管理画面にてAレコードで登録 )
ルーター側の設定
使ってるルーターによって設定方法が変わるので詳しくはググって欲しい。
私は2重ルーターで運用されていたので、WiFi側に影響しないか確認するのにめっちゃ手間取った。結論としては2層目側のルーターで設定すればOK
グローバルの動的IPに関しては諦めてつながらなくなったら再設定することにした。
サーバーの状態を遠隔で確認できるように設定もしたかったが、めんどくさくなったので設定してません。
- ポート開放
- 25565/tcp
- ルーティング
- 25565/tcpの通信が来たときにサーバーに通信を回す設定
- DHCPでルーターでIPを固定
- サーバーのMACアドレスと固定したいIPをリンクさせる
- 必ずサーバー側で固定したIPと一致させる
軽量Minecraft ServerのPaperMCをインストール
javaのインストール
$ sudo apt install openjdk-17-jdk-headless
念のためにバージョンを確認
$ java -version
openjdk version "17.0.3" 2022-04-19
マイクラサーバーの起動ファイルをDLする
papermc公式URL : https://papermc.io/downloads/paper
// この時はversion 1.20.1-196
$ wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/196/downloads/paper-1.20.1-196.jar
Serverの起動
ダウンロードしたファイルがあるディレクトリに移動して起動する
$ java -Xms2560M -Xmx2560M -jar paper-1.20.1-196.jar nogui
// Xms,Xmx:メモリの割り当て量を決める。同値を入力しないと不安定になる可能性がある。
初回起動時にワールドファイル等がダウンロードされるが、必ずエラーがでてEULAへ許諾が求められる
$ vim eula.txt
# eula = false
↓
true
動作確認
minecraftを起動し、マルチサーバーからサーバーに入ってみる
この時ローカル環境にいる場合IPのところはローカルにしないとエラーが出て入れないので注意
友達にサーバーを公開する場合はグローバルIPを教えてあげれば入れるようになる
終わりに
paperMCを起動しても重すぎたのかうまくワールド生成されず何個もワールドを作ったがうまくいかなかったのでバニラサーバーでワールド生成して無理やりワールドコピーして起動させた苦い思い出がある。
初めて公開サーバーを構築したけど、セキュリティ対策だったり、サーバーの仕組みについて勉強になってよかった。
稼働して1週間経ったがネザーからワールドに生成すると重くなるので新たに小型のN100 miniPCを買おうか検討してる始末である....
至らぬ点がたくさんあると思いますが、参考になれば幸いです。