(2022/6/20更新) [ARK: Survival Evolved] サーバー組もうとしてダメだったお話⇒改善したお話

Alma Linux 8 で組もうとしたけども

・サーバー自体は起動する
 ⇒ arkserver.log に server up のメッセージあり
 ⇒ arkmanager status で server listen がok
 ⇒ ss で 27015/udp、7778/udp を ShooterGameServがlisten
 ⇒ firewalld で該当ポートをオープン、あるいはfirewalld を停止

上記状態にも関わらず Steam のサーバー一覧から見たとき、応答なし扱い

・・・原因はメモリ不足だった
Teratermで該当サーバーにログインしていたが、メインコンソールを見たらちゃんと Out of memoryが出ていた

以下はとりあえず上記状態までの構築録

サーバースペックの見積もり

ストレージ おおよそ 最低限 20GB 以上
メモリ 8GB以上
稼働後にどれだけ肥大するのかまで確認できなかったので、仮想マシンなどで随時拡張できるようにしておくと良い

マイクラなどより結構スペックが必要なので、私のようなESXiで稼働管理している人は

以後の前提導入

rootで

dnf -y install perl-Compress-Zlib curl lsof glibc.i686 libstdc++.i686 bzip2 tar

steamcmd の導入

https://developer.valvesoftware.com/wiki/SteamCMD を参照
Alma Linux 8 時点ではリポジトリはないので、Manually の手順を行う

まずは rootで下記を行う

-- ユーザを追加

useradd steam
passwd steam
-- パスワードを設定する

-- steamcmd の導入(steamユーザへ切り替え)

su - steam

mkdir steamcmd
cd steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

上記操作は Alma Linux 8 の、「ユーザ切り替え後は /home/steam から始まる」という前提がある
あと arkmanager は root で動かすと怒られるのでユーザが必要

ArkManager の導入

steamcmd を使えば、これは不要でもいけるようだが、おてがるそうなので使用する
GitHub – arkmanager/ark-server-tools: Set of server tools used to manage ARK: Survival Evolved servers on Linux

rootで行う

curl -sL https://git.io/arkmanager | bash -s steam

これを行うと、/use/local/bin に arkmanager が導入される

Arkサーバーの導入

steamユーザーで行う

-- /home/steam に居る前提で
arkmanager install

-- root に切り替えて・・・
firewall-cmd --add-port=7777/udp --add-port=7778/udp --add-port=27015/udp --add-port=32330/tcp --add-port=32330/udp --zone=public --permanent
firewall-cmd --reload

これだけ
インストールの状況を見たい場合は、「–verbose」をつけるとわかる

Arkサーバーの起動

arkmanager start

これを起動すると下記のようなメッセージが出る

Running command 'start' for instance 'main'
The server is starting...
The server is now running, and should be up within 10 minutes

10分待てとあるので、起動にはそれぐらいかかる
起動状況をウォッチするには、下記をどうぞ

while [ 1 ]; do clear; arkmanager status; sleep 5; done;

これで、Server listeningと Server online が Yes になれば起動完了

最低限変えておくべき設定

vi /etc/arkmanager/instances/main.cfg

--- 下記を変更
ark_ServerPassword="パスワードを設定"
ark_ServerAdminPassword="パスワードを設定"

サーバーを公開する場合、この設定をしておかないと目も当てられない自体に見舞われる覚悟を

トラブルシューティング

[  WARN  ]      Your ARK server exec could not be found.

arkmanager start した後に上記が含まれている場合、install に失敗しているので、installが失敗している原因を –verbose で求めること

Running command 'install' for instance 'main'
Creating the ARK server root directory (/home/steam/ARK)
Installing ARK serverExecuting /home/steam/steamcmd/steamcmd.sh +@NoPromptForPassword 1 +login anonymous +force_install_dir /home/steam/ARK +app_update 376030 validate +quit
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1639697740
-- type 'quit' to exit --
Loading Steam API...OK
"@NoPromptForPassword" = "1"

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Please use force_install_dir before logon!
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x5) verifying install, progress: 1.10 (197684688 / 17993840299)
 Update state (0x5) verifying install, progress: 41.43 (7454054702 / 17993840299)
 Update state (0x5) verifying install, progress: 81.24 (14617641340 / 17993840299)
Warning: failed to init SDL thread priority manager: SDL not found
Error! App '376030' state is 0x202 after update job.

arkmanager install をしてに Error コードで 0x202 があったとき、空き容量不足が挙げられる
この時点で 約17GB前後の空き容量が必要となるので、df -h などで確認し、不足している場合は拡張すること

・サーバー自体は起動する
 ⇒ arkserver.log に server up のメッセージあり
 ⇒ arkmanager status で server listen がok
 ⇒ ss で 27015/udp、7778/udp を ShooterGameServがlisten
 ⇒ firewalld で該当ポートをオープン、あるいはfirewalld を停止

メモリ不足が考えられる
arkmanager start や /var/log/arkmanager/arkserver.log は途中でエラーが有ったかどうかとかは見ないっぽい
ちなみにこの減少のとき、メインコンソールでは Out of memory とかが出ているはず

ルーター設定

外部へ公開する場合、7777/udp, 7778/udp, 27015/udp を通す

ゲームルールを調整してみる

あるサーバーの構築のときのルール

このルールはLinux版だと探しにくい
Windows 版 ArkManager で設定し、対応するファイルをそのまま覗いて設定するヨロシ

ちなみに実は main.cfg に設定するのは serverMap だけで良い
その内容は GameUserSettings.ini に反映されるので、main.cfgではなくそちらを更新するで良い

/etc/arkmanager/instances/main.cfg

serverMap="LostIsland"
ark_XPMultiplier=5.0
ark_TamingSpeedMultiplier=3.0

経験値 5倍、テイム速度3倍

/home/steam/ARK/ShooterGame/Saved/Config/LinuxServer/Game.ini

[/script/shootergame.shootergamemode]
bUseCorpseLocator=True
PlayerBaseStatMultipliers[7]=5.0
HarvestResourceItemAmountClassMultipliers=(ClassName="PrimalItemConsumable_Berry_Narcoberry_C",Multiplier=5.000000)

死んだときに光の柱が立つ、プレイヤーの重量値 5倍、ナルコベリー入手量5倍

/home/steam/ARK/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini

AlwaysAllowStructurePickup=True
OverrideOfficialDifficulty=5.000000

構造物の「拾う」を常時有効、敵難易度 5


参考: https://www.yukkuriikouze.com/2020/03/11/3567/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Share via
Copy link