水澄net.com
Intelの趣味のHP
topサーバ・ネットワーク>Javaを使ってMinecraftサーバを立てる
2024年02月16日作成
2024年10月22日更新

Javaを使ってMinecraftサーバを立てる

1.必要パッケージ(zip、java17)のインストール(導入済みであれば不要)
2.minecraftサーバパッケージのダウンロード
3.ポートの穴あけ
4.minecraftサーバのセットアップ
5.別環境からの移行
6.セッション維持
【参考】構成ファイルごとのアクセス権

初めに

サーバ自体の基本的なセットアップは終わっている前提で進める
初期セットアップはここを参照

1.必要パッケージ(zip、java)のインストール(導入済みであれば不要)

下記コマンドを実行

$sudo apt install zip
$sudo apt install openjdk-17-jdk-headless

minecraft1.20.5以降では必要となるjavaのバージョンが21となるため以下のコマンドでインストールする必要がある

$sudo apt install openjdk-21-jdk-headless

2.minecraftサーバパッケージのダウンロード

下記公式ページからパッケージをダウンロードする
https://www.minecraft.net/ja-jp/download/server/
上のURLが使えない場合は”Minecraft サーバ”で検索すれば公式ページがヒットすると思う

web_kensakukekka

”minecraft_server.1.xx.x.jar”をクリックしてパッケージをダウンロードする

download-page

3.ポートの穴あけ

minecraftサーバで利用するポートの穴あけををする
minecraftでは標準で25565(tcp)番ポートを使うため、以下コマンドを実行(ufwを利用している場合)

$sudo ufw allow 25565/tcp

4.minecraftサーバのセットアップ

ダウンロードした.jarファイルをSSH SCPなどなどでサーバへ転送する
以下のコマンドでファイルを実行する

java -jar minecraft_server.1.xx.x.jar
ここではエラーを吐いて実行できないので以下のファイルを書き換える
$vi eula.txt
-eula = no
+eula = yes
※最新版では以下のように変更
$vi eula.txt
-eula=false
+eula=true

再度、コマンドを実行

java -jar minecraft_server.1.xx.x.jar

5.別環境からの移行

ワールドデータをZip化してSSH SCPなどででサーバへ転送する
転送後以下のコマンドで移動・解凍する
※データ配置後、アクセス権限情報を変更する必要がある場合があるため、うまくいかない場合はここを参照

unzip ./ファイル名

6.セッション維持

このままSSHを切断すると、minecraftサーバも落ちるので、
SSH切断後もセッション維持する必要がある
この場合は以下のように仮想セッションを作成して対応する

screen  //仮想セッション作成

//任意コマンド実行。ここでマイクラサーバを実行する

<ctrl> + <a>
<d>//一時的に仮想セッションから離脱

screen -r //仮想セッションへ復帰
screen -ls //仮想セッションの一覧表示

【参考】構成ファイルごとのアクセス権

2024年10月22日追記

ワールドデータを他から持ってきた場合などにアクセス権や所有者情報が適切なものになっていないことがある
そのため、ここにワールドデータ及び各種設定ファイルの権限情報をここに載せておく
なお、各権限の変更方法についてはここを参照
・各種設定ファイル

test@misumi-net:~/minecraft$ ls -l ./
total 50468
-rw-rw-r-- 1 test test 2 10月 22 20:04 banned-ips.json
-rw-rw-r-- 1 test test 2 10月 22 20:04 banned-players.json
-rw-rw-r-- 1 test test 157 10月 22 20:04 eula.txt
drwxrwxr-x 8 test test 4096 10月 22 20:03 libraries
drwxrwxr-x 2 test test 4096 10月 22 20:04 logs
-rw-rw-r-- 1 test test 2 10月 22 20:04 ops.json
-rw-rw-r-- 1 test test 1376 10月 22 20:04 server.properties
-rw-r--r-- 1 test test 51627615 10月 21 20:33 server_1.21.1.jar
-rw-rw-r-- 1 test test 2 10月 22 20:04 usercache.json
drwxrwxr-x 3 test test 4096 10月 22 20:03 versions
-rw-rw-r-- 1 test test 2 10月 22 20:04 whitelist.json
drwxrwxr-x 9 test test 4096 10月 22 20:05 world
test@misumi-net:~/minecraft$

・ワールドデータ
test@misumi-net:~/minecraft/world$ ls -l ./
total 40
drwxrwxr-x 3 test test 4096 10月 22 20:04 DIM-1
drwxrwxr-x 3 test test 4096 10月 22 20:04 DIM1
drwxrwxr-x 2 test test 4096 10月 22 20:05 data
drwxrwxr-x 2 test test 4096 10月 22 20:04 datapacks
drwxrwxr-x 2 test test 4096 10月 22 20:05 entities
-rw------- 1 test test 1501 10月 22 20:05 level.dat
-rw------- 1 test test 1412 10月 22 20:04 level.dat_old
drwxrwxr-x 2 test test 4096 10月 22 20:04 playerdata
drwxrwxr-x 2 test test 4096 10月 22 20:04 region
-rw-rw-r-- 1 test test 3 10月 22 20:04 session.lock
test@misumi-net:~/minecraft/world$

ここに詳細を掲載していないファイルについては都度、サーバー実行ファイルを実行することにより自動生成させた方がよいと思う

以上
<前へ戻る

《参考ページ》

・Zenn - Ubuntu 20.04でMinecraftサーバー構築
https://zenn.dev/de_teiu_tkg/articles/1b9025d3a6db71
・Qiita - Linux screenコマンド使い方
https://qiita.com/hnishi/items/3190f2901f88e2594a5f