2022年版 VPSでマイクラのクロスプレイサーバーを立てる手順【Minecraft】
このチュートリアルでは、マインクラフトのJEとBEのどちらでも入れるサーバーを立てる方法を解説します。具体的には、UbuntuでPaperサーバーを立てて、Gayser+FloodgateでBEと繋ぎます。
目次
前提条件
サーバーを立てる前に、以下のことを確認してください。
- VPSはお金がかかることを理解している
- ターミナル・コマンドプロンプトをいじったことがある
- エラーの英語から原因を推察できる
- 何かしらのパスワードマネージャーを使っている
- 基本的な英語が読める
一つでも欠けると苦戦すると思います。それぐらい手間のかかる作業をします。
筆者はMacを使っていますが、Windowsの場合、文中のcontrol
はCtrl
キーで代用できるはずです。
事前に用意するもの
学生優待GitHub Proアカウント
これを下のTermiusと連携させます。
Proが使えない場合、OSのターミナルでSSH接続してください。
大学生の方は、無料でGitHub Proを使えます。
Termius
- Termiusのダウンロード
- https://termius.com
Termiusは、SSHに加えてSFTPもできるクライアントです。ダウンロードしましょう。
同時にTermiusアカウントを作って、学生認証したGitHubアカウントと紐づけてください。Termiusの有料機能が使えるようになります。
Vultrアカウント
VultrというVPSを借りてサーバーを建てていきます。
「Billing」画面を開き、PayPalなどを使って、10ドルほどクレジットを入金しといてください。
ステップ1. サーバーデプロイと接続
新しいサーバーをデプロイ
Vultrの「Products」-> プラス -> 「Deploy New Server」で新しいサーバーをデプロイします。
以下のものを選びます
項目 | 選択肢 |
---|---|
Choose Server | Cloud Compute |
Server Location | Tokyo |
Server Type | Ubuntu (x64) |
SSD | 25GB |
2021年7月14日現在、この構成で月5ドルになります。
「Server Hostname」はmc-paper
、「Label」はマイクラBEJE
などにしましょう。
暗号鍵を本来は設定すべきですが、説明の都合上省略します。
鍵を使ったSSH接続はここでは説明しません。
なぜUbuntu?
Java版だけならCentOSで構わないが、万が一BEのサーバー(BDS)を動かす必要が生じた時のため。BDSはUbuntuを想定して作られている。
Termiusで接続
サーバーをデプロイしてしばらく経つと、IPがわかるようになります。必ずパスワード管理ソフトなどにメモしましょう。
また、root
ユーザのパスワードも必ずパスワード管理ソフトなどに記録してください。
Termiusをインストールしてログインし、「NEW HOST」をクリックしてください。
以下のように設定して保存してください。
項目 | 選択肢 |
---|---|
Label | マイクラサーバー(root) |
Adress | さっきのIP |
Username | root |
Password | さっきのroot用パス |
「SAVE」を押して保存し、ダブルクリックします。接続できたでしょうか。
信頼するホストに追加するか聞かれた場合は、Yes
を選んでください。
IPとパスが正しければこんな画面が出るはずです。
ステップ2. サーバー用ユーザの作成
ユーザの作成
rootでマイクラサーバーをいじるのは危険なので、minecraft
ユーザを作ります。
まずパスワード管理ソフトなどで、minecraft
ユーザ用のパスワードをrootと別に作ってください。
adduser minecraft
# ここでminecraftユーザ用のパスワードを設定する
# パスワード以外は全部Enterで飛ばしていい
gpasswd -a minecraft sudo
ユーザーを作れたら、control+Dでサーバーからログアウトしてください。
豆知識
SSHクライアントでは、control+Dでサーバーからログアウトする。
Termiusでマイクラ用ホストを追加
先ほどのroot用ホストを「Duplicate(複製)」します。
複製されたホストを「Edit(編集)」します。
「Label」をマイクラサーバー(minecraft)
に変えます。
ユーザー名をminecraft
に変え、パスワードも先ほど作ったminecraft
ユーザ用に変えてください。
「SAVE」してダブルクリックし、minecraft@サーバー名
と出たら成功です。
ステップ3. paperのインストール
Paperは、Spigotプラグインを入れられる軽量マイクラサーバーで、現在幅広いサーバーで使われています。
SFTPで接続しよう
Termiusの「SFTP」を開いてください。
左にパソコンのファイルが出るので、右側のホスト選択で「マイクラサーバー(minecraft)」を選んでください。
(root
ユーザでSFTPを使わないでください。)
おそらく/home/minecraft/
ディレクトリが出ます。
paper導入
paperのダウンロード
[[dl|PaperMCのダウンロード]]
|https://papermc.io/downloads#Paper-1.16
serverディレクトリを作る
mkdir server
paperを入れてリネーム
server
フォルダにpaperのjarファイルを入れ、
cd server
# .XX.X-XXXXXはTabキーで補完してください
mv paper-1.XX.X-XXXXX.jar paper.jar
# 外フォルダに出る
cd ../
でpaper.jar
にリネームします。
スクリプト準備
Vimを使います。
I | 編集(INSERT)モードに |
Esc | 編集終わり |
:wq |
保存して終了 |
編集(INSERT)モードで:wq
って打たないでね!必ずEscで編集を終わろう。
起動スクリプトを作る
vi start.sh
#!/bin/bash
cd $HOME/server
screen -md -S minecraft java -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:+UseTLAB -Xms2G -Xmx4G -XX:TargetSurvivorRatio=90 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=4 -XX:-UseParallelGC -XX:ParallelGCThreads=2 -XX:ConcGCThreads=2 -jar paper.jar nogui
start.sh
を作り、以上をCmd+Vでペーストして:wq
。
再起動スクリプトを作る
vi restart.sh
#!/bin/bash
WAIT=15
STARTSCRIPT=$HOME/start.sh
SCREEN_NAME='minecraft'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say §oリスタートシーケンスを開始...\015"'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say '${WAIT}'秒後にサーバ
ーを再起動します\015"'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 30秒ほど経てば再接続>可能になるので、しばらくお待ち下さい\015"'
sleep $WAIT
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "stop\015"'
sleep 10
$STARTSCRIPT
restart.sh
を作り、以上をCmd+Vでペーストして:wq
。
サーバー起動
minecraft/
L backup.sh
L restart.sh
L start.sh
L server/
L paper.jar
こんなファイル構成になっているはずです。
ここからはscreen
で画面を切り替えます。
操作 | キー・コマンド |
---|---|
画面一覧 | screen -ls |
アタッチ | screen -r (PID) |
デタッチ | control+A -> control+D |
キル | screen kill <PID> |
起動してみる
bash start.sh
screen -r
start.sh
はサーバーをscreen
で起動しますから、screen -r
で アタッチしないとサーバーは見れません。(裏では動いています)
すると、途中で利用規約に同意してほしい旨のメッセージが出て、サーバーが止まります。
minecraft/
L server/
L eula.txt
L paper.jar
L backup.sh
L restart.sh
L start.sh
SFTPを見ると、こんなファイル構成になっているはずです。
:::warning シェルスクリプトはpaper.jarと別フォルダ!
サーバーが生成したファイルと、自作したファイルが混ざるのは、明らかに混乱を招きます。
シェルスクリプトはserverフォルダの外に置きましょう。
:::
eulaの同意
cd server
vi eula.txt
IキーでINSERTモードにし、
eula=true
に変えてください。Esc -> :wq
で保存。
改めて起動
cd ../
bash start.sh
screen -r
サーバーが起動するはずです。
minecraft/
L server/
L cache/
L logs/
L plugins/
L world/
L world_nether/
L world_the_end/
L ...
L eula.txt
L paper.jar
L backup.sh
L restart.sh
L start.sh
こんなファイル構成になっているはずです。
サーバー設定の変更
cd server
vi server.properties
人数などを変えてください。
Termiusのスニペットに登録
Termiusのスニペット機能に以下を登録しましょう。
「サーバー起動」
cd /home/minecraft && bash start.sh
「サーバー再起動」
cd /home/minecraft && bash restart.sh
「アタッチ」
screen -r
ステップ4. 自動でバックアップさせる
バックアップフォルダ
バックアップは/home/minecraft/world_backup
に入れます。
バックアップを自動化
vi backup.sh
backup.sh
#!/bin/bash
WAIT=15
STARTSCRIPT=$HOME/start.sh
SCREEN_NAME='minecraft'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say '${WAIT}'秒後にサーバ
ーを再起動します\015"'
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "say 1分ほど経てば再接続可
能になるので、しばらくお待ち下さい\015"'
sleep $WAIT
screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "stop\015"'
sleep 20
cd /home/minecraft/world_backup
DIR=`date '+%Y%m%d_%H%M'`
tar -zcvf $DIR.tar.gz -C $HOME/server world
$STARTSCRIPT
cronに登録
crontab -e
参考
ステップ5. プラグインを入れる
以下のプラグインを入れてください。
BEで入れるようにする
- Gayser
- Floodgate
必須
- WorldGuard
- LuckPerms
- CoreProtect
- ViaVersion
- ConsoleSpamFix
任意
- FAWE
- Multiverse-core
- Dynmap
ステップ6. 独自ドメイン
サーバーに独自ドメインを設定する手順です。
独自ドメインで接続しやすく
有名なサーバーはほぼ100%独自のドメインを使っています。あなたのサーバーも数字でなく好きなドメインで接続可能にしましょう。
おすすめはGoogle Domains
Google Domainsは余計なメールが一切なく、設定の反映も爆速です。
Google DomainsでIPに独自ドメインを接続
「DNS」画面で「Manage Custom Records」->「Create new record」をクリックします。
あとは 「A」レコードを選んで、IP欄にサーバーのIPを入れるだけ です。
ドメインが設定できたら
サーバーを宣伝しましょう。Dynmapはhttp://なんちゃら.com:8123
で見れます。
以上でチュートリアルは終了です。
1件のコメント
-
javaboy2021年7月28日同じコマンドが使えることを優先するならubuntuを推奨するべきでは? また、asobinon.orgの参照先のリンクが404投げてきます。