ARK:Survival Evolved 用自宅サーバー構築メモ
いわゆるLinux自宅サーバーです。初心者が書いたので初心者向けです。
ホロライブなどVtuberの方達はじめ、配信者の方達ARK楽しそうですよね。あなたもやりたくなりますよね。鯖立てよう。
ubuntuのインストールからサーバーの公開まで メモも兼ねて書いておきます。 基本的にはこちらのサイトがよくまとまっていて参考になります。
試す場合は、一度軽く全体を読んでからやることをお勧めします。 ポート 解放など、環境によってはできない場合もあります。
※自己責任でお願いします。
目次
1.サーバーのスペック
2.ubuntuのインストール
3.ポート解放
4.ファイルオープン上限の設定
5.steamCMDとARKのダウンロード
6.ARKの起動
7.systemctlで自動起動
8.セーブデータ、サーバー設定など
9.おまけ
1.サーバーのスペック
ARKのサーバーを起動するためにはメモリが最低6GB必要とのこと。自分の環境では常時7GB程度使用しています。
接続人数6人で安定して動作しています。
CPU使用率は30%くらいで余裕があります。
2.ubuntuのインストール
USBを用いてインストールしました。 参考サイト
そのコマンドないよって言われたらググって
sudo apt-get install (入れたいコマンド )
しましょう。
インストール後、sshを入れてwindows/macで操作しています。 私のエディタはダサいと言われようがemacsです。
3.ポート解放
ポート解放が行えるインターネット契約であることを確認してください。
ゲーマーなら知ってるかと思いますが一部のjcom、なんとかairはできません。その場合はレンタルサーバーなどを使ってください。
解放するポートは以下の通りです。
・ルーター側(自分の場合)
ブラウザでルーターにログインする。(多分192.168.1.1)
サーバーを外部に公開
上記のポートを選択
・ubuntu側
ubuntuのポート解放は、先にufwでファイアーウォールの設定が有効になっていることを確認した方が良さげです。セキュリティー的にもそうですし、有効でないとサーバーに自分以外入れなかったです。
ファイアウォール設定の確認
$ sudo ufw status
ファイアウォールの有効・無効
$ sudo ufw enable $ sudo ufw disable
ポートの解放、設定の更新、確認
$ firewall-cmd --permanent --add-port=27015/udp $ firewall-cmd --permanent --add-port=7777/udp $ firewall-cmd --permanent --add-port=7778/udp $ firewall-cmd --permanent --add-port=27020/tcp $ firewall-cmd --reload $ sudo ufw reload $ sudo ufw status
4.ファイルオープン上限の設定
arkサーバーのファイルオープン数が、ubuntuのデフォルトの制限値よりも大きいライしいので、上限を上げる必要があります。
まずは設定ファイルを開いて、
$ emacs /etc/sysctl.conf
以下を追記します。
fs.file-max=100000
設定を反映させます。
$ sysctl -p /etc/sysctl.conf
次に1プロセスの上限数も変更します。同様にファイルを開き、
$ emacs /etc/security/limits.conf
以下を追記してください。
* soft nofile 1000000 * hard nofile 1000000
設定の反映
sysctl -p /etc/slimits.conf
5.steamCMDとARKのダウンロード
steamのゲームなんでsteamを使ってインストールします。
32ビット用バイナリのインストール
steamCMDは32ビットで動作しているので64ビットのマシンを使っている場合は以下のインストールが必要になるそうです。 yumのインストールしていなければしておいてください。
$ sudo yum install -y glibc.i686 libstdc++.i686
steamCMDのダウンロード
ダウンロードディレクトリを作ってそこにcurlで持ってきます。
$ cd $ mkdir steam $ cd steam $ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
ARKのダウンロード
steamCMDを起動して匿名ログイン。インストールディレクトリ"ark"を指定してサーバーをインストールします。
$ ./steamcmd.sh >Steam login anonymous >Steam force_install_dir ark >Steam app_update 376030 validate >Steam exit
これでサーバーの起動ができます。
7.ARKの起動
arkの起動コマンドは以下の通りです。
$cd steam/ark/ShooterGame/Binaries/Linux/ $./ShooterGameServer <マップの指定>?listen?SessionName=<セッションの名前(サーバーブラウザ上で表示される名前)>?ServerPassword=<入室パスワード>?ServerAdminPassword=<管理者用パスワード> -server -log
<>内を適宜書き換えてください。 マップはTheIsland、TheCenter、Ragnarokなど。
設定ファイルなどは steam/ark/ShooterGame/Saved に初回起動後作成されます。
起動時に
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
というエラーが表示されることがありますがサーバーの動作には関係しないので無視して大丈夫です。
8.systemctlで自動起動
このままでも十分サーバーとして機能しますが、サーバーが動いている間、他のことができないですし、何かと不便なのでsystemdを用いて自動で起動できるようにすると便利です。 こちらを参考に
9.セーブデータ、サーバー設定など
ゲームのセーブデータ及び設定ファイルは steam/ark/ShooterGame/Saved に生成されます。
デフォルトで15分おきにワールドの保存が行われます。他にも参加ユーザーごとにセーブファイルが生成されます。
設定は海外wikiを参照したり、配布ファイルを使ったり、Ark Server Manager(略称:ASM)で生成後サーバーに移すなどで行えます。 windowsで作成したファイルは文字コードや改行に注意してください。
置く場所は、steam/ark/ShooterGame/Saved/Config/LinuxServer 内です。
10.おまけ
htopをインストールして使うと、サーバーマシンのCPUやメモリ、動いているプログラムなどリアルタイムに観察できます。 見た目もかっこいいので有能感に浸れて最高です。是非サーバーが動いている時に眺めてみてください。
それから、サーバー上から管理者コマンドって使えないんですかね。minecraftみたいに。 知ってる方いらっしゃいましたら教えてください。