ValheimのサーバーをVPSでたてる
目次
いま話題のValheimを24時間遊べるサーバーをたてて友達と一緒に楽しもうって主旨です。
store.steampowered.com
こんな人向け
サーバー(VPS)選び
サーバーに必要なスペックは高くない。現状は以下を満たせば十分。*1
私は自分でVPSを借りるのが今回初めてだが仮想サーバーで十分だろうということで適合するVPSサービスを比較サイトから選んだ。
採用したのはKagoyaのサービス。3コア/3GB/30GBの仮想サーバー(KVM)を選択した。(1540円/月)
本当はWeb Arena Indigoの2コア/4GB/80GB(1399円/月)を借りたかったけど空きが無いと断られてしまったので妥協した。
有名どころのAmazon Web Service EC2やGoogle Compute EngineやMicrosoft Azureやさくらインターネットを選んでもよかったが無料で使えるサーバーではスペック不足だったりそれ以外だと比較的高価なので却下。GPortal等のゲーム専門のレンタルサーバーはサーバーの設定とかラクちんそうだが微妙に高かったりラグがひどいみたいな評判が目についたのでこちらも却下。ここは好みで。
サーバー(インスタンス)の作成・起動
ツールの準備
サーバーはリモートから操作するので最初にSSHクライアントを用意する。好きなものを使えばよい。
マニュアル - KAGOYA CLOUD VPS サポートサイト - SSH接続の設定
私はWindows Terminalを使っている。
Windows Terminalの設定は次の記事が参考になる。後で出てくる秘密鍵をあわせて設定しておけばサーバーへの接続が多少楽になる。
astherier.com
インスタンスの作成
※ここはKagoyaのVPSを借りる場合の手順になります。他サービスで借りた場合はそちらのマニュアル等を参照してください。
マニュアルに従ってやればよい。
- SSHアクセスするための鍵作成
マニュアル - KAGOYA CLOUD VPS サポートサイト - ログイン用認証キー作成 - ファイアウォールの設定
マニュアル - KAGOYA CLOUD VPS サポートサイト - セキュリティグループの設定
開けるポートは次の通り。
- インスタンス作成
マニュアル - KAGOYA CLOUD VPS サポートサイト - インスタンス作成(Linux OS)
選択は基本デフォルトでOK。以下のものは設定する。
なお、KadoyaのVPSにはeth0にグローバルIPアドレスとプライベートIPアドレス(10.150.11.1)の二つが付与してある。この状態だとValheimサーバーがゲームクライアントに送るべきパケットをプライベートIPアドレスの方で送ることがありその場合はゲームに入れなくなる。これはtcpdumpで調べた。
このプライベートIPが邪魔だがこれはVPSに追加でアドレス設定する時に使うものとありそんなことする予定は無いのでここではアドレスを削除する。疎いので他にいい方法あれば教えて欲しい。
ip addr del 10.150.11.1 dev eth0
インスタンスの起動
インスタンスの作成時に勝手に起動すると思うが起動してなかったら手動で起動する。
マニュアル - KAGOYA CLOUD VPS サポートサイト - 起動
Valheimサーバーの設定
サーバーにSSHで繋いで設定操作をおこなう。
本稿ではValheimサーバーの設定・運用にはLinux Game Server Managers(LinuxGSM)を使うものとする。最初の設定が楽だし運用のための機能もついてるので。
linuxgsm.com
LinuxGSMのインストール
前提パッケージをインストールする。
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux netcat lib32gcc1 lib32stdc++6 steamcmd
サーバーの状態確認に便利なのでGamedig(LinuxGSMの推奨ツール)も入れておく。
sudo apt remove --purge nodejs npm
sudo apt clean
sudo apt autoclean
sudo apt install -f
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt update && sudo apt install -y nodejs
npm install gamedig -g
Valheimサーバー用のユーザーを作る。
adduser vhserver
passwd vhserver
※好きなパスワードを設定する
自身をサーバー用ユーザーに変更する。
su - vhserver
LinuxGSMをダウンロードする。
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh vhserver
LinuxGSMをインストールする。
./vhserver install
ゲームサーバーを起動してみる。
./vhserver start
無事起動したら設定を進めるためゲームサーバーを止める。
./vhserver stop
ゲームサーバーの設定
※サーバーにはSSHで繋ぎゲームサーバー用ユーザーとなって操作すること。
次のパスに設定ファイルがあるのでエディタ(vi/nano)で開く。
lgsm/config-lgsm/vhserver/vhserver.cfg
設定ファイルには次の内容を記載する。
servername="サーバー選択画面で表示するサーバーの名前"
# Minimum password length is 5.
serverpassword="サーバーに入るためのパスワード"
port="2456"
gameworld="ゲームワールドを生成するための文字列(半角英数字ならなんでもよいはず)"
public="1"
サーバーの起動・停止
※サーバーにはSSHで繋ぎゲームサーバー用ユーザーとなって操作すること。
起動は次のコマンドを実行する。
./vhserver start
停止は次のコマンドを実行する。
./vhserver stop
ゲームからサーバーに接続
次の手順でサーバーを探して接続する。お友達にはサーバー名とパスワードを教えておく。
- Valheimを起動
- Start Game
- キャラクター未作成なら作る
- Start→Join Game
- [Filter]欄にサーバー名を入れる
- サーバーを選択
- Connect
- パスワードを入力する
- I HAVE ARRIVED!!
もしもサーバーが見つからなかったり、パスワードが違ったら設定を見直してください。
steamアプリのお気に入りから入る手順が出回ってるけど自分の環境では結局↑の手順を踏まないとサーバーには入れなかった。
アップデートとバックアップ
※サーバーにはSSHで繋ぎゲームサーバー用ユーザーとなって操作すること。
ゲームにアップデートが入るとサーバーも更新するまで遊べなくなってしまうので1時間に一回アップデートをかける。また、障害やバグでデータ壊れた時に巻き戻せるように1日に一回バックアップをとるようにする。
処理はcronに対して次のように設定する。なお、更新が無い場合はアップデート処理が走ってもサーバーの再起動などは起きない。
crontab -e
↓エディタで以下を記入。
0 * * * * /home/vhserver/vhserver update > /dev/null 2>&1 # 毎時0分にアップデート
0 7 * * * /home/vhserver/vhserver backup > /dev/null 2>&1 # 毎日7:00にバックアップ
バックアップの個数や最大保持日数はLinuxGSMの設定で変更できる。デフォルトは4回×30日。