Dedicated Server Setup
![]() |
This article may need cleanup to meet quality standards. |
Please help improve this if you can. The Discussion page may contain suggestions.
このページでは、専用ARKサーバーのインストールと構成について説明します。
独自の専用サーバーで実行できるスクリプトについては、専用サーバースクリプトを参照してください。
前提条件
OSは64ビットOSである必要があります(ShooterGameServerは64ビットの実行可能ファイルであるため、UbuntuまたはWindowsの32ビットインストールでは実行されません)。 サーバーはUbuntu 14.04[1] でテストされており、_CommonRedist
にある前提条件をインストールできるすべてのWindowsホストもサポートする必要があります。
ハードウェア
サーバーを起動するには、少なくとも6GBのRAMが必要です。接続されているプレーヤーの数が増えると、メモリ要件が増加します。 Windows Server 2012 R2では、クライアントはクライアントなしで2.3GBのRAMを使用します。Linuxでは、インストールはクライアントなしで3.2GBのRAMを使用します。
ネットワーク
サーバーは、以下のポートで着信接続を待ちます。ネットワーク構成がこれらのポートへの着信接続を許可し、専用サーバーを実行するホストにそれらを転送することを確認します。
ポート | 用途 |
---|---|
UDP 27015 | Steamのサーバーブラウザのクエリポート |
UDP 7777 | ゲームクライアントポート |
UDP 7778 | 生のUDPソケットポート(常にゲームクライアントポート+1) |
TCP 27020 | リモートコンソールサーバーアクセス用のRCON(オプション) |
同じホスト上で複数の専用サーバーをホストできますが、CPUとメモリがテストサーバーではなくビジーサーバーである場合は、それらを注意深く監視する必要があることに注意してください。
例えば:
サーバーインスタンス | ゲームポート | 生のUDPポート | クエリポート | RCONポート |
---|---|---|---|---|
Server game instance 1 | 7777 | 7778 | 27015 | 27020 |
Server game instance 2 | 7779 | 7780 | 27016 | 27021 |
Server game instance 3 | 7781 | 7782 | 27017 | 27022 |
Server game instance 4 completely different ports |
9999 | 10000 | 37015 | 37016 |
*注*
Steamがこれらのポートを使用しているため、クエリポートを27020〜27050にすることはできません。
前提条件
Windows
Microsoft Visual C ++ 2013再頒布可能パッケージ(_CommonRedist/vcredist/folderの下のSteamArkゲームフォルダーにあります)。
DirectX(DXSETUP、_CommonRedist/DirectX/June2010/フォルダーの下のSteamArkゲームフォルダーにあります)。
Linux
64ビットLinuxサーバーでは、steamcmdをインストール/実行するために32ビットバイナリが必要です。
sudo apt-get install lib32gcc1
ゲームサーバーにはglibc2.14以降が必要です。Ubuntu 14.04(およびそれ以降)およびDebian 8(Jessie)はこの要件を自動的に満たしますが、Debian 7(Wheezy)などの古いバージョンは満たしていません。必要なバージョンのglibcをDebian7(Wheezy)ホストにインストールするには:
- 次の行を
/etc/apt/sources.list
に追加します:# Experimental/unstable (sid) repositories deb http://ftp.debian.org/debian experimental main deb http://ftp.debian.org/debian sid main
- ホストの使用可能なパッケージリストを更新し、更新されたglibcライブラリパッケージをインストールするには、sudoまたはルートシェルを介して次のコマンドを実行します:
apt-get update apt-get -t experimental install libc6-dev
注: この手順では、ホストをDebian Unstable(sid)にアップグレードしません。glibc自体とそれが依存するパッケージのみが更新されます。
glibc 2.14以降を含まない他の古いディストリビューションについては、ディストリビューションのドキュメントとサポートフォーラムでガイダンスを参照してください。
オープンファイル制限
- 注: systemdを使用して専用サーバーを起動する場合(以下の#Automatic Startupで説明)、このセクションは適用されません。実行時にこの制限を設定できるためです。
ホストのオープンファイル制限がゲームサーバーをサポートするのに十分高いことを確認するには、次の手順に従います:
- 次の行を
/etc/sysctl.conf
に追加します:fs.file-max=100000
次に、sudoまたはルートシェルを介して次のコマンドを実行し、変更を適用します:
$ sysctl -p /etc/sysctl.conf
- 次の行を
/etc/security/limits.conf
に追加します:* soft nofile 1000000 * hard nofile 1000000
- 次の行を
/etc/pam.d/common-session
に追加します:session required pam_limits.so
警告: これらの変更がないと、ゲームサーバーが正常に起動しない場合があります。サーバーが起動しているように見えても、5.5 GB以上のRAMを使用せずに大量のCPU時間を使用している場合は、必要なすべてのファイルを開くことができないため、上記の変更を適用する必要があります。
チューニング
は、システムコンポーネントの使用を監視し、システム設定を動的に調整するデーモンです。現在、RHEL7、CentOS7.x、およびFedoraでのみ使用されます。
注: 注:「throughput-performance/スループットパフォーマンス」に調整を設定する必要があります。 そうしないと、/etc/security/limits.confのすべての変更が無視されます。
SteamCMD
専用サーバーは、LinuxプラットフォームとWindowsプラットフォームの両方で使用できます。どちらのプラットフォームでも、SteamCMDを使用してサーバーファイルをダウンロードします。 インストールと使用法の詳細については、そのページを参照してください。 以下の手順に含まれる手順は、スペースを考慮して意図的に簡潔になっています。
警告: [Linux-specific | Windows: report missing] サーバーを実行するためにSSDを使用したいが、通常のsteamフォルダがメインのHDDにある場合は、「.steam」にあるフォルダのソフトリンクを確認してください。
サーバーのインストール
- ホストにSteamCMDをインストールします。
- 15GB以上の空きディスク容量があるボリュームにサーバーファイルを格納するフォルダーを作成します。サーバーファイルは約7.5GBのスペースを消費します(2016年9月)が、追加のスペースを消費する保存と将来のコンテンツ更新を計画することをお勧めします。
- ホストでSteamCMDを起動し、それを使用してサーバーファイルをダウンロードします。(< >を削除し、二重引用符で置き換えます。たとえば、 force_install_dir "C:\Program Files (x86)\Ark Server")
-
SurvivalEvolvedにはapp id 376030を、Survival of theFittestにはapp id 445400を使用してください
Steam> login anonymous Steam> force_install_dir <install_dir> Steam> app_update 376030 validate Steam> exit
- または、コマンドラインから実行します:
steamcmd +login anonymous +force_install_dir <install_dir> +app_update 376030 +quit
<install_dir>
を、手順2で作成したフォルダーへのフルパスに置き換えます。Linuxでは、これは/home/steam/servers/ark
のようなパスになります。 Windowsでは、これはc:\arkserver
のようなパスになります。 -
必要なオプションと設定でサーバーを起動するスクリプトを作成します。簡単にするために、サーバーファイルがダウンロードされたのと同じフォルダーに配置します。Windowsでは、これはバッチファイルです。 Linuxでは、これはシェルスクリプトです。以下に例を示します。 どちらのプラットフォームでも、サーバーオプションは同じ基本構文で指定されます。
Windowsの場合、
start_server.bat
を作成し、YOUR_ARK_SERVER_FOLDER/ShooterGame/Binaries/Win64/ に配置します('<' '>'記号を削除してください!)start ShooterGameServer.exe TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password>?Port=<port>?QueryPort=<query_port>?MaxPlayers=<max_players> exit
Linuxの場合、
server_start.sh
を作成し、YOUR_ARK_SERVER_FOLDER/ShooterGame/Binaries/Linux/に配置します('<' '>'記号を削除してください!)#! /bin/bash ./ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log
Linuxでは、スクリプトを作成した後、スクリプトを実行可能にします:
$ chmod +x server_start.sh
これらの例の両方で、
<server_name>
をサーバーの目的の名前に、<join_password>
をサーバーに参加するためにプレーヤーが提供する必要のあるパスワードに、<admin_password>
をサーバーへの管理者アクセスを取得するために提供する必要のあるパスワードに置き換えます。プレーヤーの参加パスワードが必要ない場合は、オプション全体をリストから削除します(?ServerPassword=
パラメーター自体を含む)。 - 最後に、サーバーを起動するには、前の手順で作成したスクリプトを実行します。
ベータブランチを実行する
イベントはメインゲームではなく、いわゆるブランチに実装される場合があります。 このイベントを実行するには、このブランチに変更します。
ブランチ名を含む-betaをapp_updateコマンドに追加します。
Steam> app_update 376030 -beta branchname validate
さらに、-branchname
を使用してサーバーを起動します。
もちろん、ブランチ名をブランチの名前に変更します。 イベントが終了するか、終了する必要がある場合は、追加を削除するだけです。
ポート転送とファイアウォール
サーバーがArkサーバーリストとSteamリストの両方に表示されるようにするには、次の手順を実行します:
Windows (ファイアウォールと許可ルール)
- Windows 10を使用している場合は、左下隅の検索ボックスをクリックして、「ファイアウォール」と入力します。 「Windowsファイアウォール」をクリックします。
- ファイアウォールが開いたら、左側のパネルの[詳細設定]をクリックします。
- 左側のパネルで[インバウンドルール]をクリックしてから、右側のパネルで[新しいルール...]をクリックします。
- 新しいインバウンドルールウィザードが開いたら、[ポート]、[次へ]の順に選択します。
- セットアップでは、TCPまたはUDPのどちらを許可するか、およびどのポートにするかを尋ねられます。 TCPを選択します。 次に、[特定のローカルポート]が選択されていることを確認してから、転送する予定のポートをボックスに入力します(RCONのデフォルトは27020)。
- 「接続を許可する」を選択し、ウィザードを続行します。
- ルールが適用される場所ですべてのボックスが選択されていることを確認します。
- 名前(必須)と説明(オプション)を入力します。
- これらの手順を繰り返しますが、TCPを許可する代わりにUDPを許可します。 Steamブラウザ/クエリポート(デフォルトは27015)とゲームポート(デフォルトは7777)を必ず入力してください。?bRawSocketsを使用する場合は、生のudpソケットポート(デフォルトでは7778、常にゲームポート+1)も必要です。
- [インバウンドルール]セクションに3つのポートルールがあるはずです。
- このセクションとポートフォワーディングセクションは密接に関連しています。
- 高度なファイアウォールウィンドウを閉じて、Windowsファイアウォールを再度開きます。
- [Windowsファイアウォールを介してアプリまたは機能を許可する]をクリックします。 ShooterGameまで下にスクロールします。 ShooterGameという名前のすべてのアプリで、[プライベート]ボックスと[パブリック]ボックスがオンになっていることを確認してください。
- 完了しました。転送時にポートが機能しない場合は、[詳細設定]タブに戻り、[インバウンドルール]タブを選択し、作成したルールを右クリックして、[プロパティ]をクリックすることでファイアウォールのインバウンドルールを編集できます。
OS X (ファイアウォールアプリケーション)
入力が必要です。
Linux
ほとんどのLinuxディストリビューションでは、ファイアウォールがある場合はiptablesベースになります。 最近のほとんどのディストリビューションは異なるインターフェースを使用するため、直接iptablesコマンドの代わりにそれを使用することをお勧めします。
ファイアウォールの変更はすべて、rootまたはsudoのいずれかで行う必要があります。 これらの開いているポート77777778および27015はUDPの場合、オプションで27020はTCPの場合です。 「forportin ...」行を編集して、必要なポートのリストを調整することをお勧めします。
UFW
このスクリプトは、再起動後も持続する方法でポートを開きます。 UFWはUbuntuのファイアウォールです
#!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do ufw allow $port/udp done #Uncomment the next if you want to open the default rcon port #ufw allow 27020/tcp
FirewallD
このスクリプトは、再起動後も持続する方法でポートを開きます。 FirewallDは、RHEL7、CentOS7.x、およびFedoraのファイアウォールです。
#!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do firewall-cmd --permanent --add-port $port/udp done #Uncomment the next if you want to open the default rcon port #firewall-cmd --permanent --add-port 27020/tcp firewall-cmd --reload
iptables
これは一時的な解決策にすぎず、他のスクリプトがシステムに適用されない場合にのみ使用する必要があることに注意してください。 再起動を安全に行うには、ディストリビューションのドキュメント、既存の構成ファイルにファイアウォールポートを追加する方法、またはブートプロセスにスクリプトを追加する方法を参照してください。
#!/bin/sh if [[ $EUID -ne 0 ]]; then echo "This must be run as root" exit 1 fi for port in 7777 7778 27015; do iptables -t filter -I INPUT -p udp --dport $port -j ACCEPT done #Uncomment the next if you want to open the default rcon port #iptables -t filter -I INPUT -p tcp --dport 27020 -j ACCEPT
ポート転送
ポートフォワーディングに関するチュートリアルを掲載しているWebサイトはたくさんあります。 大多数のルーターのチュートリアルを提供しているportforward.comにアクセスすることを強くお勧めします。
どのポートが機能するかはあなた次第です。 ポートとして27015を転送し、クエリポートとして27016を転送してみてください。 27015、27016、および7777は、機能する最も一般的なポートです。
サーバーがリストに表示されるようにするには、TCPとUDPの両方を転送する必要 があります。 portforward.comのツールを使用して、つまり、ポートが開いていることを確認できます。
転送したポートを、前に作成したはずのstart_server.batファイルに入力します。 例えば、
start ShooterGameServer.exe TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password>?Port=7777?QueryPort=27015?MaxPlayers=<max_players></max_players>
幸運を祈ります。ポートフォワーディングはそれほど簡単ではありません。
リストでサーバーを見つける
SteamサーバーリストまたはArk非公式リストからサーバーにアクセスできます。 Arkリストであなたの名前を検索するか、SteamサーバーリストであなたのIPアドレスを見つけてください。
がんばってください!
自動起動
Windows (スケジュールされたタスク経由)
システムの起動時にバッチファイルを自動的に実行し、専用サーバーを起動するようにスケジュールされたタスクを構成できます。
- 「タスクスケジューラ」を開きます
- 基本的なタスクを作成する
- 「基本タスクの作成ウィザード」が表示され、タスクに任意の名前を付けます
- トリガーを「コンピューターの起動時」に設定します
- アクションを「プログラムの開始」に設定します。
- 起動したいプログラム/スクリプト(サーバーを起動する.BATバッチファイル)を参照する必要があります。
- バッチファイルの動作によっては、「開始(オプション)」パスを設定する必要がある場合があります。これにより、バッチファイルの作業ディレクトリが正しくなります。 (バッチファイルに「startShooterGame ...」コマンドが含まれているだけの場合は、スケジュールされたタスクの「Start in(オプション)」パスをバッチファイルを含むディレクトリに設定する必要があります)
- スケジュールされたタスクを作成する前に、作成後に[プロパティウィンドウを開く]チェックボックスをクリックします
- [セキュリティオプション]フレームの下の[全般]タブで、[ユーザーがログオンしているかどうかに関係なく実行する]を選択することをお勧めします。
- 念のため、個人的に「最高の権限で実行する」を確認しました。これは必要ないかもしれません。
Linux (systemd経由)
注: systemdはUbuntu14.04では使用できません
スクリプトを使用して専用サーバーを手動で起動する代わりに、systemdを実行しているホストを構成して、システムの起動時に専用サーバーを自動的に起動することができます。 この方法を使用してサーバーを管理する場合は、GameUserSettings.ini
を使用してサーバーの設定を指定することを強くお勧めします。 詳細については、Admin Game Commandsを参照してください。
- Create a file named
/etc/systemd/system/ark-dedicated.service
with the following contents:[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/steam/steamcmd +login anonymous +force_install_dir /home/steam/servers/ark +app_update 376030 +quit ExecStart=/home/steam/servers/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<session_name> -server -log WorkingDirectory=/home/steam/servers/ark/ShooterGame/Binaries/Linux LimitNOFILE=100000 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s INT $MAINPID User=steam Group=steam [Install] WantedBy=multi-user.target
ExecStart
行は、サービスを開始するために実行するコマンドを指定します。 上記の起動例(#Server Installation)と同じ構文を使用し、すべて同じ引数を使用しますが、ここでは、ホスト上のARK専用サーバーの場所を反映するように調整することが重要です。 上記のように、サーバー実行可能ファイルへのフルパスを使用します。<SESSION_NAME>
も、サーバーに必要なセッション名に置き換えてください。最後に、ホストの
User
とGroup
の設定を調整します。ark-dedicated.service
,にこれらの2つのオプションがない場合、専用サーバーはrootユーザーとして実行されます。専用サーバーに脆弱性があると、攻撃者がホスト上のリモートスーパーユーザーアクセスを取得する可能性があるため、これは安全ではありません。この目的のためだけに使用される非特権アカウントで専用サーバーを実行することをお勧めします。 上記の例では、ユーザーアカウント"steam"が使用されています。これは"steam"グループのメンバーであり、通常はアカウントと一緒に作成されます。
いくつかの問題を修正するには、WorkingDirectoryオプションが必要です。 たとえば、WorkingDirectoryが設定されていないと、modのダウンロードに失敗します(-automanagedmodsとともに使用している場合))
- systemdをインストールするには:
apt-get install systemd systemd-sysv
systemdを初期化するには、インストール後に再起動する必要があります。
新しいサービスをアクティブ化して、sudoまたはルートシェルを介して次のコマンドを実行し、ホストの起動時にサービスが自動的に開始されるようにします:
# systemctl enable ark-dedicated
このコマンドを実行した後、専用サーバーはホストが起動すると自動的に起動します。 このコマンドはサーバーをすぐには起動しないため、サーバーを有効にした後で専用サーバーを起動するには、次のコマンドを実行します:
# systemctl start ark-dedicated
これらの手順を実行すると、サーバーが稼働し、起動時とシャットダウン時にホストによって自動的に管理されるようになります。
セットアップ後の管理
サーバーは、以下を実行することで停止できます:
# systemctl stop ark-dedicated
実行することで、現在のステータスを(実行されているかどうかに関係なく)表示できます:
# systemctl status ark-dedicated
注: ark-dedicated.service
ファイルを更新する必要がある場合(専用サーバーの起動オプションを変更したり、そのパスを調整したりするため)、次のコマンドを実行して、変更が適用されていることを確認します:
# systemctl daemon-reload
更新
新しいバージョンがリリースされたときにサーバーを更新するには、前のセクションで示したのと同じSteamCMDコマンドを繰り返します。 プラットフォームに適したコマンドセットを使用してください。 このプロセスの自動化の詳細については、SteamCMDのドキュメントを参照してください。
systemdスタートアップファイルを使用すると、ゲームを開始するたびに実行される更新メカニズムを簡単に統合できます。
SteamCMDは、インストールと更新をより簡単かつシームレスにするための追加ツールを提供します。
コンソールコマンド
ゲームの実行中、コマンドコンソールには、[~]
(チルダ)キーまたは[TAB]
キーのいずれかを使用してアクセスできます(ゲームのバージョン、デフォルト構成、およびキーボードレイアウトによって異なります)。 コンソールに移動したら、管理者コマンドをアクティブにするには、次のように入力します:
enablecheats <admin_password></admin_password>
<admin_password>
をサーバーの管理者パスワードに置き換えます。
使用可能なコマンドのリストについては、Admin Game Commandsを参照してください。
ゲーム内でコンソールを開くことができない場合は、ゲームを終了してから、ゲームのDefaultInput.ini
ファイル(Steam ライブラリの steamapps\common\ARK\ShooterGame\Config
フォルダ内)をテキストエディタで開き、ファイルの下部にある以下の行を探します:
;+ConsoleKeys=Tab
セミコロン(;)を削除し、次のように行を変更します:
+ConsoleKeys=Tab
ファイルを保存してゲームを起動します。 コンソールにアクセスできる必要があります。
サーバーデータのバックアップ
サーバーデータのバックアップを作成するには、ShooterGame/Saved
(およびそのコンテンツ)という名前のフォルダーを目的のバックアップ場所にコピーするだけです。 このフォルダーには、サーバーのすべてのトライブ、プレーヤー、および世界のデータが含まれています。 サーバーを新しいリリースに更新する前に、バックアップを実行することをお勧めします。
トラブルシューティング
再起動時にサーバーがキャラクターまたはワールドデータを失う
サーバーを再起動したときに文字やワールドデータが保持されていない場合は、サーバーがインストールされているフォルダーへのフルアクセス権がない可能性があります。
サーバーを初めて実行するときは、さまざまな構成と保存ファイルを含むShooterGame/Saved
という名前のフォルダーを作成する必要があります。 サーバーが少なくとも1回実行されたが、このフォルダーを作成していない場合は、サーバーで新しいフォルダーとファイルを作成できなかった可能性があります。 サーバーがインストールされているフォルダーが、実際にサーバーを実行しているユーザーアカウントによって読み取りおよび書き込み可能であることを確認します。 (Windowsサーバーの場合は、ユーザーアカウント制御のステータスを確認してください)
サーバーソフトウェアは、デフォルトで、15分ごとにワールドデータを自動的に保存するように設定されています。 最初の15分が経過する前にサーバーがクラッシュした場合、データは保存されません。
LinuxサーバーはCPU使用率が高く、メモリ使用量が少ない(1GB未満)
これは、ホストで開くファイルの制限が不十分なために、サーバーが必要なすべてのファイルを開くことができない場合に発生する可能性があります。 上記のLinuxセクションを参照し、手順に従ってホストのオープンファイル制限を増やしてください。
ツール-ARKサーバーオーガナイザー
このツールを使用して、サーバーのインストール時にサーバーを管理することもできます: http://steamcommunity.com/sharedfiles/filedetails/?id=951274291
このフリーウェアは、ARK専用サーバーのインターフェースを提供します。 SteamCMDで動作します。
追加 :
- AutoUpdate: サーバーを最新の状態に保つために、サーバーを毎日更新して再起動することを選択できます。 チェックボックスをオンにして、更新時間を選択するだけです。
- Hide Server Window: サーバーの黒い画面を非表示にできます(スクリーンショット番号4)。 アプリを閉じることもできます。アプリは通知領域に送信され、サーバーは引き続き実行されます。 この機能は、サーバーを起動する前に設定する必要があります。
- Get Public Server Address IP: たとえば、完全なアドレスをすばやく簡単に取得して、友達と共有できるようになりました。
- NotifyIcon Settings: 視覚的なフォームなしで、NotifyIconからサーバーをオンまたはオフにすることができます。 「IPアドレスの取得」機能にアクセスすることもできます。
- Portable Application: クイックスタート、小型、インストール不要。
- Night Mode: 夜の使用に最適です。 もう目を痛めません。
- Anti-hibernation: サーバーの実行中は、マシンはスリープまたは休止状態になりません。
- Server Backup: サーバーのデータを保存できます。
- SteamCMD packed-in: あなたはARKSOでSteamCMDをインストールすることができます
備考
参照資料
外部リンク
- この資料の一部は、ShuwAによってSteamコミュニティフォーラムに投稿されたガイドに基づいています。
- http://gameserversetup.com/ark-survival-evolved-dedicated-server-setup/
- https://survivalservers.com/wiki/index.php?title=How_to_Create_an_ARK:_Survival_Evolved_Dedicated_Server_Guide
- http://steamcommunity.com/app/346110/discussions/0/615086038673139870/
- https://www.bestarkhosting.com/guides/how-to-host-an-ark-dedicated-server/
- https://comparegamehosting.com/reviews/how-to-find-the-perfect-ark-survival-evolved-server-hosting-company/
- https://comparegameservers.comのホスティング会社を比較して、あなたに最適なホスティング会社を見つけてください。