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統合版サーバを開けることができました