📖

Valheimをレンタルサーバに構築しよう!

2023/01/13に公開

2023.01.28 ubuntuのバージョンを18.04 → 22.04に上げました。

霧の地が公開されたので、またValheimサーバを構築したいと思います。
前回たてたのが半年くらい前で、内容忘れちゃった + 流石に2回目で同じこと調べたくないので手順メモを書きたいと思います。

今回もConohaでUbuntu 18.04 22.04をレンタルしてそこに立てます!

大まかな流れ

  1. Conohaでubuntuサーバを契約
  2. SSHでConohaサーバへ接続
  3. 契約したubuntuサーバにValheimをインストール
  4. Valheimの自動アップデート設定を追加
  5. 構築したValheimサーバにセーブデータを移植
  6. 構築したValheimサーバにローカルからアクセスしてみよう!
  7. ubuntuサーバの自動更新

以上になると思います!

1. Conohaでubuntuサーバを契約

  1. Conohaにログインする(ユーザ未登録の方は、まずユーザを作るところから)

  2. サーバ追加から、ubuntu 18.04 22.04 を選択(18.04だと参考が発生するぽい)

  3. サーバを起動(契約すると自動的に起動する)

※最近のアップデートでメモリ2GBだとワールド保存時に落ちるっぽい挙動を発見したためメモリ上げた方が良さそうです

2. SSHでConohaサーバへ接続

Conoha側が用意しているコンソールでも良いのですが、慣れてるローカルのコンソールの方が作業がしやすいのでSSHで接続します

  1. SSH Keyを作成

  2. プライベートキーをダウンロード
    SSH Keyを作成するとダウンロードするかどうか聞かれるのでダウンロードしてください。

  3. ダウンロードしたプライベートキーを~/.sshへ移動する
    ターミナルを開いて下記コマンドを実行

$ mv ~/Downloads/%プライベートキーファイル名%.pem ~/.ssh/conoha_server.pem

※%プライベートキーファイル名%には、2.でダウンロードしたプライベートキーのファイル名を指定してください

  1. SSHでサーバへ接続
    下記コマンドでサーバへ接続できるはず
$ ssh -l root -p %起動しているポート% -i ~/.ssh/conoha_server.pem %起動しているIPアドレス%

※%起動しているポート%、%起動しているIPアドレス%については、conoha側のサーバ設定を確認してください
※途中でrootのパスワードを聞かれるので、Conohaサーバ購入時に設定したパスワードを入力してください

3. 契約したubuntuサーバにValheimをインストール

  1. 実行ユーザーを作成
$ useradd -m vhserver
$ passwd vhserver
$ sudo gpasswd -a vhserver sudo
$ sudo su - vhserver

※パスワードは適宜設定してください

  1. 32bitに変更してsteamCMDとその他必要なパッケージをインストール
    ※steamは32bit出ないと動作しないようです
$ sudo add-apt-repository multiverse
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install -y curl wget file tar bzip2 gzip unzip bsdmainutils python3 util-linux ca-certificates binutils bc jq tmux netcat lib32gcc-s1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd

Do you want to continue?[Y/n]

という文字がでるまで放置します。
上記が出たら、Yを押してenterで進めます

  1. ゲームを管理するLinuxGSMのインストール
$ wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh vhserver
$ ./vhserver auto-install
  1. Valheimサーバの設定を変更します
$ vim /home/vhserver/lgsm/config-lgsm/vhserver/vhserver.cfg

設定ファイルの文末に以下を追記

servername="%サーバー名%"
serverpassword="%サーバー接続パスワード%"
gameworld="Dedicated"
public="1"
port="%ポート%"

※%サーバー名%、%サーバー接続パスワード%、%ポート%は適宜設定してください
※%ポート%の指定をしない場合は、port="%ポート%"を削除してしまって問題ないです(指定する場合は、適当に被らないポートを指定してください)

  1. Valheimサーバの起動
$ ./vhserver start

※停止は下記

$ ./vhserver stop

4. Valheimの自動アップデート設定を追加

cronで決まった時間に更新を走らせる

  1. vhserverでログイン
$ sudo su - vhserver
  1. cronの設定ファイルを開く
$ crontab -e
  1. 下記設定を追記
15 * * * * /home/vhserver/vhserver update > /dev/null 2>&1
0 2 * * * /home/vhserver/vhserver update-lgsm > /dev/null 2>&1
@reboot /home/vhserver/vhserver start > /dev/null 2>&1

設定内容

  • 毎時15分にVALHEIMをアップデート
  • AM2:00にLinuxGSMをアップデート
  • OS起動時にLinuxGSMを起動する。

5. 構築したValheimサーバにセーブデータを移植

サーバ上の下記ファイルを、移植したいセーブデータに置き換える

/home/vhserver/.config/unity3d/IronGate/Valheim/worlds/Dedicated.fw
/home/vhserver/.config/unity3d/IronGate/Valheim/worlds/Dedicated.db

※SCPコマンドやツールを利用して置き換えるのが楽!
※念の為、Valheimの再起動やった方が良い

6. 構築したValheimサーバにローカルからアクセスしてみよう!

7. ubuntuサーバの自動更新 不要

  1. スーパーユーザーでログイン
$ su -
  1. cronの設定ファイルを開く
$ crontab -e
  1. 下記設定を追記
30 3 * * * apt update && apt upgrade -y
0 4 * * * reboot
30 4 * * * apt autoremove && apt clean

設定内容

  • AM3:30にパッケージ一覧リストを更新し、パッケージを更新
  • AM4:00に再起動
  • AM4:30に更新により不要になったパッケージを削除し、パッケージキャッシュを削除

8. その他

サーバを起動したが接続できない場合

Firewall設定を確認する

  1. rootユーザで下記コマンドを実行し、Firewallが有効になっているか確認する
$ sudo ufw status

下記になっていればOKだがなっていない場合はポートを解放する必要がある

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
2456                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
2456 (v6)                  ALLOW       Anywhere (v6)

  1. ポートの解放
$ sudo ufw allow 2456
$ sudo ufw reload

上記コマンドを実行後、再度1.を実行し解放されているか確認してください
※3-4のValheimの設定で特にポートを指定しない場合は、2456になってます。

参考資料

https://knowledge.sakura.ad.jp/28440/

ありがとうございます!

次回は、Valheimのセーブデータを自動的にGoogleドライブにアップデートする手順を上げていきたい気持ちですがいつになるやら・・・!

Discussion