/------- 2017/4/5 追記 -------------
再インストールするときわかりにくかったので書き直しました。
ARK:Survival Evolved Linux Dedicated Server 導入メモ - Linuxとかの設定メモとかそんな感じ
/-----------------------------------
※書いてある内容を実行して何かあっても責任はとれません。
すべて自己責任でお願いします。
構築する際、情報がバラバラでしたのでまとめておきたいと思います。
基本的にはDedicated Server Setup - Official ARK: Survival Evolved Wikiからの情報です。
以下の内容はすべてLinux向けです。CentOS7を使用してます。
Linux自体の設定等は書きません。
バックアップ、RCONの設定
ARK Linux個人サーバー 設定とか - Linuxとかの設定メモとかそんな感じ
目次
- サーバーの環境、スペック
- 下準備
- ARKのインストール、アップデート
- SteamCMDのインストール
- ARKのインストール、アップデート
- ARKの起動、停止
- Systemctlでの起動と停止
1.サーバーの環境、スペック
64bitOSが必要、サーバーのテストはUbuntu14.04でしている?
サーバーを起動するのに最低でも6GBのメモリーが必要みたいです。
SSDのアクセス速度を利用して、6GB未満の場合でもスワップを増やせば起動することはできます。さくらのVPSメモリ2GBのプランでスワップを4GB増やして起動はしました。テストくらいにしか使ってないので実用に耐えられるかは不明です。
私はWebArenaのVPSクラウドでメモリ6GBプランで建てていますが、5人程InするとCPU負荷が80%程度、メモリも80%程度でした。
2.下準備
・以下のポートの開放
UDP 27015 スチームサーバーブラウズで使うポート
UDP 7777 ゲーム用のポート
(UDP 7778 Raw UDP ソケットポート)
TCP 27020 RCONで使うポート。RCON使わないなら開けなくても大丈夫
root権限で
#firewall-cmd --permanent --add-port=27015/udp
#firewall-cmd --permanent --add-port=7777/udp
#firewallを再起動すると変更が適応されるのでリロード
#firewall-cmd --reload
・SteamCMDのインストールに要求されるライブラリーのインストール
#yum install -y glibc.i686 libstdc++.i686
・/etc/sysctl.conf に以下の行を追加。ここの設定を忘れてた時、ログイン時にクエリーエラーが出てました。
fs.file-max=100000
・/etc/security/limits.conf に以下の行を追加
* soft nofile 1000000
* hard nofile 1000000
3.SteamCMDのインストール
ここからはユーザー権限で行う。
・ユーザーの作成
#useradd [ユーザー名]
#passwd [ユーザー名]
#su - [ユーザー名]
・Steam用のフォルダを作成し移動
$mkdir Steam && cd Steam
・SteamCMDの本体をダウンロード
$curl -sqL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz' | tar zxvf -
・SteamCMDの起動
$cd Steam
$./steamcmd.sh
・匿名でログイン
Steam>login anonymous
・ログアウト
Steam>exit
このSteamCMDでサーバープログラムをダウンロードしていきます
ARK以外にも対応しているゲームがたくさんあります。詳しくは↓
Dedicated Servers List - Valve Developer Community
4.ARKのインストール、アップデート
・Steamcmd.shあるディレクトリに移動して起動、ログイン
$./steamcmd.sh
Steam>login anonymous
・保存するディレクトリを指定する
Steam>force_install_dir <インストールディレクトリ>
・サーバーのダウンロード。ARKのSteamIDは376030なのでこれを指定する。
Steam>app_update 376030
・SteamCMDの終了
Steam>exit
以上の手順を1行で書いて実行すると楽です。<インストールディレクトリ>部分のみ環境に合わせて
./steamcmd.sh +login anonymous +force_install_dir <インストールディレクトリ> +app_update 376030 +quit
アップデートする場合も、この手順でします。
Dedicated Servers List - Valve Developer Community
またこちらにあるものは、同様の手順でインストールできるみたい?
5.ARKの起動、停止
・ARKの起動
ARKインストールしたディレクトリ以下の
<インストールディレクトリ>/ShooterGame/Binaries/Linux/
に移動して以下のコマンドで起動できます。
./ShooterGameServer TheIsland?listen?SessionName=<セッション名>?ServerPassword=<サーバーパス>?ServerAdminPassword=<管理者パス> -server -log
<セッション名>:サーバーの名前
<サーバーパス>:サーバーにログインするときのパスワード
<管理者パス>:サーバー内のコマンドを使うときのパスワード
・停止
現在の画面で動いてる場合はCtrl+C、別ウィンドウの場合は killで
※この方法でサーバー落としていたら恐竜のロス報告がありました。
いまは、ゲーム内でDoexitするかRCONでDoexitしています。
ゲーム内→TABでコンソールが開きますのでそこで
Enable cheats <管理者パスワード>
admincheats DoExit
と入力するとサーバーが終了します。
RCONでサーバーを停止する場合→
ARK Linux個人サーバー 設定とか - Linuxとかの設定メモとかそんな感じ
6.Systemctlでの起動と停止
・起動設定ファイルの作成
/etc/systemd/system/に ark-dedicated.service ファイルの作成
#cd /etc/systemd/system/
#vim ark-dedicated.service
内容は以下
[Unit]
Description=ARK: Survival Evolved dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
ExecStartPre=/home/<ユーザー名>/steamcmd.sh +login anonymous +force_install_dir <インストールディレクトリ> +app_update 376030 +quit
ExecStart=/home/<ユーザー名>/<インストールディレクトリ>/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<セッション名>?ServerPassword=<サーバーパス>?ServerAdminPassword=<管理者パス> -server -log
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
User=<ユーザー名>
Group=<ユーザー名>
[Install]
WantedBy=multi-user.target
ユーザー名、インストールディレクトリ等は環境に合わせて。
設定を反映させる
systemctl daemon-reload
ARKの起動
systemctl start ark-dedicated.service
ARKの停止
systemclt stop ark-dedicated.service