友達と遊ぶために、ConoHaでMinecraftのサーバを立ちげました。

ConoHaではMinecraftのテンプレートサーバがありますが、勉強も兼ねて1から立ち上げてみました。

料金はメモリ2GBのプランで3.7円/h。まあ、今日見た映画よりは安いですね。

手順

まずは、ConoHaのダッシュボード上での作業です。

  1. ローカルでssh-keygenし、公開鍵をアップロード
    1. 秘密鍵は、~/.ssh/conohaに保存しておく
  2. 22番TCPポートと、25565番TCP/UDPポートを許可するセキュリティグループを作成
  3. VPSをレンタル
    1. 2GBを選択しました。約3.7円/月。
    2. 公開鍵とセキュリティグループを適用

サーバーが起動したら、表示されたIPv4アドレスにローカルでSSH接続します。

  1. SSHで接続確認
    1. ssh -i ~/.ssh/conoha root@<ipアドレス>
  2. SCPで.tmux.confをアップロード
  3. tmuxに入る
  4. ufw statusで空いているポートの確認
    1. 空いていなかったので、25565番ポートを解放

ここからは、Minecraft Wiki: Tutorial: Setting up a Java Edition serverの手順。

  1. apt update
  2. apt install openjdk-21-jdk-headless
  3. reboot
  4. 再接続(SSH)
  5. server.jarをダウンロード
    1. curl -O https://<download_link>/server.jar
    2. バージョンに注意
  6. 適当なディレクトリを作ってserver.jarをコピー
  7. java -jar server.jar --noguiを実行
  8. eula.txtが作成されるので、最後の行を変更
    1. EULAに同意するなら、eula=trueにする
  9. 再度サーバを起動
    1. java -Xms1024M -Xmx1536M -jar server.jar --nogui
    2. ワールドが作成される
    3. これをスクリプトにしても良い
  10. 一旦終了
  11. ops.json, whitelist.jsonを適宜編集
  12. server.propertiesを適宜編集(参考: Minecraft Wiki
    1. motdpvp, white-listをよく編集する
  13. 再度起動

正常に起動したら、クライアント側でMinecraftを起動して接続できるはずです。

htopでメモリの確認もできます。

遊び終わったら

scpでリモートのファイル全体をダウンロードする:

scp -r -i ~/.ssh/conoha <リモートのユーザ>@<リモートのIPアドレス>:/root/mcserv/ ~/Downloads

もしくは、

  1. ConoHaのサーバを停止した後、
  2. サーバのイメージを保存

保存したイメージは次回ロードでき、サーバは削除(停止ではない)すれば料金はかかりません。イメージは50GBまで無料で保存しておけます。 参考: ConoHa VPS 料金

あとがき

  • よく使うスクリプトはscpやコピペしなくてもダウンロードできるようにしたいと感じた。
    • .tmux.confなど
  • ConoHa VPSはAPIで操作できるらしいので、「サーバから人が抜けたら終了する」部分を自動化しても良いかなと感じた。
    • もしくは、指定の日時・曜日だけ空けておくサーバなど