VultrでMinecraft統合版サーバーを開ける

Minecraft統合版サーバーを開ける機会があったのですが、少し手古摺ったため備忘録として投稿します

1. 使うもの

・Tera Term
・Vultr (CentOS)
・Minecraft Windows10版


2. ユーザー設定

Tera Termを用いてrootでログインします

Vultr Server Details でIPアドレスやPasswordを確認し、Tera Termに貼り付けていきます
Tera Termの「ホスト」はIPアドレス、「ユーザ名」はroot、「パスフレーズ」はPasswordです

ログインができたら新しいユーザとパスワードを設定します

useradd ***
passwd ***
# *** は 任意のユーザ名

また作成したユーザにsudoを与えます

usermod -G wheel ***
# *** は 任意のユーザ名

これで *** を wheelグループに所属させることができます
Vultrのwheelグループは初期でsudo権限を持っているようです
もし持っていない場合は以下のように書き直してください

visudo
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

これでユーザの設定は完了です


3. SSH接続設定

Tera Termを利用したログインをパスワードではなく公開鍵認証に変更します

Tera Termで「設定」 > 「SSH鍵生成」から鍵を生成します
鍵の種類はRSA、パスフレーズは任意のものにしてください
公開鍵と秘密鍵の保存も行ってください

公開鍵 : id_rsa.pub
秘密鍵 : id_rsa

作成した公開鍵を作成したユーザでログインしたTera TermにD&Dして、VPSに転送します

mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

転送し終えたら上記を実行します

これで作成した公開鍵を使用してSSH接続できるようになります。
注意ですが、authorized_keysのownerを作成したユーザにしておきましょう。

次によりセキュリティを上げていきます

sudo vi /etc/ssh/sshd_config

sshd_configを編集します

#Port 22 // 変更前
Port 1022

#PermitRootLogin yes // 変更前
PermitRootLogin no 

#PasswordAuthentication yes // 変更前
PasswordAuthentication no 

これは上記から
・SSHのPortを1022(他でも可)に
・rootでログイン不可に
・パスワードログインを不可に

sudo systemctl restart sshd

sshdを再起動します

僕はここで下記のようなエラーが起きました

Job for sshd.service failed because the control process exited with error code. 
See “systemctl status sshd.service” and “journalctl -xe” for details.

ログ確認をしてみると

sudo  tail /var/log/secure

どうやらSELinuxがポートを許可してくれてないようです

sudo semanage port -a -t ssh_port_t -p tcp 1022 // 1022を許可

これでエラーは解消されました


SSHで利用するポートの開放を行います

firewall-cmd --permanent --add-port=1022/tcp // 1022をポート開放
firewall-cmd --permanent --add-port=19132/udp // マイクラで利用するポート開放
firewall-cmd --reload // 設定を反映

ついでにマイクラで利用するポートも開けておきましょう

これでSSHで公開鍵認証ができるようになりました


4. Minecraftサーバを開ける

作成したユーザでログインしたTera Termを開きます

cd minecraft

サーバをデータを管理するフォルダを作成します

その中にサーバ本体をダウンロードします
日本語版サーバダウンロードサイトが壊れていたので英語版を張っています

これをダウンロードして転送するか、wgetを行いましょう

※現時点では

wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.220.02.zip

ダウンロードしたzipファイルを展開します

unzip bedrock-server-1.16.220.02.zip

これでサーバを起動しようとすると

libnsl.so.1がないエラーが表示され実行されなかったので導入します

yum install -y libnsl

これでひとまずはサーバを起動することができます
しかし、Tera Termを閉じるとサーバを終了してしまうのでscreenを用いた仮想端末でのサーバ運用を行います

dnf install -y epel-release
dnf install -y screen

screenをインストールします


5. サーバ実行

全ての準備が終わったのでさっそくサーバを起動します

LD_LIBRARY_PATH=. screen -dmS bds ./bedrock_server

これでscreenを用いたMinecraft統合版サーバを開けることができました


いいなと思ったら応援しよう!