友達と遊ぶために、ConoHaでMinecraftのサーバを立ちげました。
ConoHaではMinecraftのテンプレートサーバがありますが、勉強も兼ねて1から立ち上げてみました。
料金はメモリ2GBのプランで3.7円/h。まあ、今日見た映画よりは安いですね。
手順
まずは、ConoHaのダッシュボード上での作業です。
- ローカルで
ssh-keygenし、公開鍵をアップロード- 秘密鍵は、
~/.ssh/conohaに保存しておく
- 秘密鍵は、
- 22番TCPポートと、25565番TCP/UDPポートを許可するセキュリティグループを作成
- VPSをレンタル
- 2GBを選択しました。約3.7円/月。
- 公開鍵とセキュリティグループを適用
サーバーが起動したら、表示されたIPv4アドレスにローカルでSSH接続します。
- SSHで接続確認
ssh -i ~/.ssh/conoha root@<ipアドレス>
- SCPで
.tmux.confをアップロード - tmuxに入る
ufw statusで空いているポートの確認- 空いていなかったので、25565番ポートを解放
ここからは、Minecraft Wiki: Tutorial: Setting up a Java Edition serverの手順。
apt updateapt install openjdk-21-jdk-headlessreboot- 再接続(SSH)
server.jarをダウンロードcurl -O https://<download_link>/server.jar- バージョンに注意
- 適当なディレクトリを作って
server.jarをコピー java -jar server.jar --noguiを実行eula.txtが作成されるので、最後の行を変更- EULAに同意するなら、
eula=trueにする
- EULAに同意するなら、
- 再度サーバを起動
java -Xms1024M -Xmx1536M -jar server.jar --nogui- ワールドが作成される
- これをスクリプトにしても良い
- 一旦終了
ops.json,whitelist.jsonを適宜編集server.propertiesを適宜編集(参考: Minecraft Wiki)motdとpvp,white-listをよく編集する
- 再度起動
正常に起動したら、クライアント側でMinecraftを起動して接続できるはずです。
htopでメモリの確認もできます。
遊び終わったら
scpでリモートのファイル全体をダウンロードする:
scp -r -i ~/.ssh/conoha <リモートのユーザ>@<リモートのIPアドレス>:/root/mcserv/ ~/Downloads
もしくは、
- ConoHaのサーバを停止した後、
- サーバのイメージを保存
保存したイメージは次回ロードでき、サーバは削除(停止ではない)すれば料金はかかりません。イメージは50GBまで無料で保存しておけます。 参考: ConoHa VPS 料金
あとがき
- よく使うスクリプトは
scpやコピペしなくてもダウンロードできるようにしたいと感じた。.tmux.confなど
- ConoHa VPSはAPIで操作できるらしいので、「サーバから人が抜けたら終了する」部分を自動化しても良いかなと感じた。
- もしくは、指定の日時・曜日だけ空けておくサーバなど