ARK: Survival Evolved linux サーバーの立て方
linux上でARK: Survival Evolvedのサーバーを構築してのでメモ
windowsでサーバーを建てる場合は以下のとおりです。
はじめに
素晴らしいコマンドを用意してくれたひとに感謝
FezVrasta/ark-server-tools
動作必要環境
6人がプレイする上で実際に使用したリソースです
- CPU 第4世代 0.5コア
- メモリ 5.12GB
環境構築
以下のコマンドをターミナルにコピペすればサーバーは起動します。
(ポート開放は自分でやってね)
パッケージのインストール
ファイアウォールの設定
以下のように開けてください。以下のポートが開けられる設定であればiptablesでなくても良いです。
- 7777 TCP/UDP
- 7778 TCP/UDP
- 27015 TCP/UDP
- 32330 TCP/UDP
ついでにルータのポート開放を行ってください
arkmanagerのインストール
インストールにはしばらく時間がかかります。
これでサーバーのインストールが完了しました。
サーバーパスワードの変更
/etc/arkmanager/instances/main.cfgに存在する以下の値を変更することで設定することができる
- ark_ServerPassword=""
- ark_ServerAdminPassword="keyboardcat"
サーバーの起動・停止
サーバーの起動には以下のコマンドで行なえます。起動には5~10分ほどかかります。
サーバーの停止
サーバーに参加する方法
Steamを開きサーバーを選択します。
お気に入りのサーバーを追加を選択します。
ここに例えばサーバーを実行しているローカルIPを打ちます
すると以下のようにサーバーの名前やバージョンが出れば接続できます。
外からのアクセスの際はグローバルIPからアクセスしましょう。
使い方まとめ
開発元のUsageに全て書いてあります
FezVrasta/ark-server-tools
コンフィグの設定は以下のファイルをいじってください
ATLAS / ARK GameUserSettings.ini Generatorを使うと楽かもしれません
steamを経由しない通信を行う
※デフォルトで有効になり、この設定は削除されました。
上記の設定ではすでに対策されているので気にしなくて良い
標準のarkサーバーはSteamを経由した接続を行っている。
そして最近になってarkを購入する人が増えたせいなのか、一定時間が経過するとサーバーに接続している人が同時にサーバータイムアウトで切断される。
大体5分経過すると参加者は切断される。
これを対策するためにはSteamを経由せずにクライアントがサーバーに接続する必要がある。
これはサーバーと直接接続するオプションである
?bRawSockets
を ShooterGameServer の起動時引数として渡す必要がある。つまり以下のような状態にする必要がある。
これを arkmanager に追加するためには以下のどちらかに「ark_bRawSockets=""」を追加すれば良い
- /etc/arkmanager/arkmanager.cfg
- /etc/arkmanager/instances/main.cfg
この設定を行っただけで、参加者が切断されることはなくなった。
Steamとエピックのクロスプレイサーバー設定
ShooterGameServerの起動時引数として「-crossplay」が必要となります。
ShooterGameServerを直接起動している場合
arkmanagerを利用している場合
/etc/arkmanager/instances/main.cfg を編集します(メインで利用しているinstanceを選んでください。ここでは例としてmain.cfgです)
「arkflag_crossplay=""」を追加してください
アップデート後のタイムアウトについての考察
巷ではアップデート後にタイムアウトが出ているという情報があったが、これはrawソケットの常時有効化に伴うものではないかと考えられる。
rawソケットを使わなければ7777と21015を開けておけばよかったが、更新によって、7777,7778,21015が必要となったのではないだろうか?
ディスカッション
コメント一覧
こちらの記事を参考にしてサーバーを立ててみたのですが、Epic Games版のARKからサーバーに接続できません。
どうしたらいいのでしょうか?
Steamとエピックのクロスプレイサーバー設定は多分ちゃんとできています。
使用環境
OS:Ubuntu 18.04.5LTS
CPU:6コア
メモリ8GB
SSD:160GB
ターミナルに「ps ax | grep Shoot」と入力してください。
そうすると起動時の引数が確認できます。
正しく設定できていれば、以下のようにクロスプレイの引数が付いた結果が得られるかと思います。
「24005 ? Rl 0:06 /home/steam/ARK/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?RCONEnabled=True ・・・略・・・ ?listen -crossplay」
あとは、ルーター側のポート開放はできていますか?
返事ありがとうございます!
実は、コメントした後にダメ元でポート番号を指定してサーバーに参加したら行けました。
大変お騒がせいたしまして申し訳ございません。
プレイができたようで安心しました。
ゲームをお楽しみください。