【Linux/Ubuntu】Ark Survival Evolvedの鯖立てが超めんどくさかったのでツールでラクをした

Ark SEのサーバーをsteamcmdで普通にやろうとしたところ、謎に起動せず全くうまくいかなかったのでツールを使いました。やり方を残しておきます。記事の最後でBattlEyeの無効化とホワイトリストのやり方も解説しています。

経緯

Steamcmdで普通に入れようとしたら、

エラー

このエラーで詰まり、しかも画面が更新されないのでサーバーが開いているのか閉じているのかもわからず…という状態だったので、投げ出して別の方法を探しました。

結論

これ使えばすべて雑に解決します。英語が読める人はREADME.mdのとおりに進めてください。読めない人や読めるけどめんどくさい人は、以下の記事で内容を補ってください。

注意

色々コマンドが出ますが、私を含め知らない人に教わったコマンドをそのまま実行しないようにしましょう。公式のREADMEも読みながら進めてください。

やり方

1. 鯖にログイン

Windowsは不可です。Linuxを使ってください。

Windowsの方はこの記事とか読むと良いと思います。

2. 依存関係のインストール

共通

基本的には入っているはずですが、特殊なOSを使っている人は一応確認しておいてください。

Copy
>=bash-4.0
>=coreutils-7.6
findutils
perl
rsync
sed
tar

CentOS、RHEL

以下をインストールしてください。

Copy
perl-Compress-Zlib
curl
lsof
glibc.i686
libstdc++.i686
bzip2

Ubuntu、Debian

ほとんどの方は以下のコマンドで大丈夫なはずです。

Copy
sudo apt update && sudo apt install perl-modules curl lsof libc6-i386 lib32gcc-s1 bzip2 -y

Debian BusterまたはUbuntu20.04以下の方は、代わりにこのコマンドを実行してください。

Copy
sudo apt update && sudo apt install perl-modules curl lsof libc6-i386 lib32gcc bzip2 -y

3. arkmanagerのインストール

以下を実行します。ユーザー名がsteamではない場合、これを自分のユーザー名に書き換えてください。それだけで私の環境では問題なく動きました。

特権ユーザー(root)

rootではない場合はcurlの前にもsudoを忘れずに。

Copy
curl -sL https://raw.githubusercontent.com/arkmanager/ark-server-tools/master/netinstall.sh | sudo bash -s steam

非特権ユーザー

Copy
curl -sL https://raw.githubusercontent.com/arkmanager/ark-server-tools/master/netinstall.sh | bash -s -- --me

これだけです。

4. サーバーインストール

以下を実行します。

Copy
arkmanager install

ディレクトリ名を決めたい場合は、そういうオプションがあったような気もします。やり方はごめんなさい、わかりません。

実行すれば、おそらく/home/ユーザー名/ARKにサーバーが入っているはずです。特に名前をつけていない場合、このサーバーはmainという名前になります。

5. サーバー設定

以下を実行します。

Copy
arkmanager printconfig

そうすると、こんな感じの文字が出るはずです。

Copy
Running command 'printconfig' for instance 'main'
/etc/arkmanager/instances/main.cfg => arkserverroot
/etc/arkmanager/instances/main.cfg => serverMap
/etc/arkmanager/instances/main.cfg => ark_RCONEnabled
/etc/arkmanager/instances/main.cfg => ark_RCONPort
/etc/arkmanager/instances/main.cfg => ark_SessionName
/etc/arkmanager/instances/main.cfg => ark_Port
/etc/arkmanager/instances/main.cfg => ark_QueryPort
/etc/arkmanager/instances/main.cfg => ark_ServerPassword
/etc/arkmanager/instances/main.cfg => ark_ServerAdminPassword
/etc/arkmanager/instances/main.cfg => ark_MaxPlayers
/etc/arkmanager/arkmanager.cfg => arkstChannel
/etc/arkmanager/arkmanager.cfg => install_bindir
/etc/arkmanager/arkmanager.cfg => install_libexecdir
/etc/arkmanager/arkmanager.cfg => install_datadir
/etc/arkmanager/arkmanager.cfg => steamcmdroot
/etc/arkmanager/arkmanager.cfg => steamcmdexec
/etc/arkmanager/arkmanager.cfg => steamcmd_user
/etc/arkmanager/arkmanager.cfg => steamcmd_appinfocache
/etc/arkmanager/arkmanager.cfg => steamcmd_workshoplog
/etc/arkmanager/arkmanager.cfg => arkserverexec
/etc/arkmanager/arkmanager.cfg => arkbackupdir
/etc/arkmanager/arkmanager.cfg => arkbackupcompress
/etc/arkmanager/arkmanager.cfg => arkwarnminutes
/etc/arkmanager/arkmanager.cfg => arkprecisewarn
/etc/arkmanager/arkmanager.cfg => arkNoPortDecrement
/etc/arkmanager/arkmanager.cfg => arkautorestartfile
/etc/arkmanager/arkmanager.cfg => arkAutoUpdateOnStart
/etc/arkmanager/arkmanager.cfg => arkBackupPreUpdate
/etc/arkmanager/arkmanager.cfg => arkMaxBackupSizeMB
/etc/arkmanager/arkmanager.cfg => msgWarnUpdateMinutes
/etc/arkmanager/arkmanager.cfg => msgWarnUpdateSeconds
/etc/arkmanager/arkmanager.cfg => msgWarnRestartMinutes
/etc/arkmanager/arkmanager.cfg => msgWarnRestartSeconds
/etc/arkmanager/arkmanager.cfg => msgWarnShutdownMinutes
/etc/arkmanager/arkmanager.cfg => msgWarnShutdownSeconds
/etc/arkmanager/arkmanager.cfg => msgWarnCancelled
/etc/arkmanager/arkmanager.cfg => logdir
/etc/arkmanager/arkmanager.cfg => appid
/etc/arkmanager/arkmanager.cfg => mod_appid
/etc/arkmanager/arkmanager.cfg => mod_branch
/etc/arkmanager/arkmanager.cfg => defaultinstance

なんとなく察しが付くと思いますが、この/etc/arkmanager/instances/main.cfgをいじればmainサーバーのconfigを変更できます。

6. ポート開放

開放する必要のあるポートは以下のとおりです。

  • 7777/udp
  • 7778/udp
  • 27015/udp

ちなみにarkmanagerのREADMEには「27016を開けろ」と書いてありますが、あれは嘘です。何も起こりません。なぜなら、Steamはデフォルトで27015番ポートを探すからです。

このポートは変更可能ですが、無駄な手間がかかることになります。27015を使っておきましょう。

ちなみに、「32330も開けろ」と書いてありますが、RCONポート(リモートコマンド実行用)なので詳しくなければ逆に開けないほうがいいです。バレれば荒らし放題なので。

また、「TCPも開けろ」と書いてありますが、ARK SEが使うのはUDPだけなので開ける必要はありません。なんか変ですね、このREADME。

7. サーバーの起動

以下を実行します。

Copy
arkmanager start @main

@mainが今作ったサーバーです。「start」とすることで、バックグラウンドで動いてくれます。代わりにrunでも動きますが、Ctrl+Cで止まらないのでおすすめしません。

メッセージに出ている通り、起動完了までには10分程度かかります(私の環境だと平均2分です)。バックグラウンドで動いているため、この状態でサーバーからログアウト(セッションを切断)しても問題ありません。

8. サーバーの状態確認

以下を実行します。

Copy
arkmanager status @main

arkmanager status

だいたいこんな画面になればOKです。

それにしても、arkservers.netってなんでしょうか。もしかしてサーバーを開くと勝手に載るのか…?

9. サーバーの停止

以下を実行します。

Copy
arkmanager stop @main

以上で完了です。あとは好き勝手に設定をいじって好みのサーバーに仕立て上げてください。良いサバイバルを。

番外1:BattlEye(アンチチート)の無効化

/etc/arkmanager/instances/main.cfg(main以外を弄りたい場合はmainを書き換えてください)に、以下を追加します。多分どこでもいいです。

main.cfg
Copy
arkflag_NoBattlEye="true"

これだけでOKです。

  • 身内でやるからアンチチートがいらない
  • MODの導入予定がある

という方は、これ1行いれるだけでOKなので入れておきましょう。

ちなみに、BattleEye(バトルアイ)ではなくBattlEye(バトライ)です。マジで紛らわしい。

番外2:ホワイトリスト

ホワイトリストが欲しい人は、また/etc/arkmanager/instances/main.cfg(main以外を弄りたい場合はmainを書き換えてください)に1行加えます。

main.cfg
Copy
arkflag_exclusivejoin="true"

ホワイトリストは、cfgではなくサーバーフォルダのShooterGame/Binaries/Linux/PlayersJoinNoCheckList.txtに書きます。AIに聞いたら「Win64に入れろ」と言われてまんまと騙されたので、みなさんもAIの言うことを信じるのはほどほどにしておきましょう。

改行区切りでSteamのIDを入れればOKです。SteamのIDは、Steamアプリまたはブラウザでプロフィールを開き、上のURLの末尾の数字を見ればわかります。

コピー

プライベートなものじゃないと思いますが、念の為隠しています。結構長いのでコピペが賢明です。

参考文献

READMEってasciidocでもいけるんですね。初めて見た。

役に立ったらコーヒーを注ごう

コーヒーを注ぐおんニャプロフィール画像

この記事が「役に立った!」と思ったら、筆者にコーヒー(300円)を注いであげましょう。きっと執筆の活力になります。
リクエストも受け付けています。やり方はこちら