Overview
Google Cloud を触ってみたいので、試用のため貰える $300 で 7D2D サーバを建ててみる
この試用クレジットは Vultr と違って 90 日間保つ(2023/11 現在)
Architecture
-
7 Days to Die ゲームバージョン
Alpha 21.1 (b16)
リリースノート -
Google Compute Engine VM インスタンスの構成
東京リージョンはじわ高いが今回はタダなので使っていく
Column Value リージョン asia-northeast1 (東京) ゾーン asia-northeast1-a マシンファミリー 汎用 シリーズ E2 マシンタイプ e2-standard-4(4 vCPU、2 コア、16 GB メモリ) OS Ubuntu OS バージョン Ubuntu 22.04 LTS x86/64, amd64 jammy image built on 2023-10-30 ブートディスクの種類 バランス永続ディスク ディスクサイズ 20GB
Flow
前提として、Google Cloud アカウントが作成されていること
Google Cloud Console を開き、任意の名称でプロジェクトを作成し、Compute Engine API を有効化しておく
仮想マシンの作成
VPC ファイアウォールルールの追加
接続に必要な FW ルールを用意しておく
Google Cloud Console の検索窓から VPC ネットワーク を選択
default ネットワークに以下の FW ルールを追加
Column | Value |
---|---|
名前 | 任意のルール名 |
トラフィックの方向 | 上り |
一致したときのアクション | 許可 |
ターゲット | 指定されたターゲットタグ |
ターゲットタグ | 任意のタグ名 |
ソースフィルタ | IPv4 範囲 |
送信元 IPv4 範囲 | 0.0.0.0/0 |
プロトコルとポート | 指定したプロトコルとポート |
TCP | 8080-8082, 26900 |
UDP | 26900-26903 |
VM インスタンスの作成
Compute Engine > VM インスタンス を選択
インスタンスを作成 をクリック
構成 を選択
ブートディスクの変更から、OS とディスク容量を変更
詳細オプション > ネットワーキング > ネットワークタグ に、
FW ルールにターゲットタグとして設定した タグ名 を設定
作成をクリック
ステータスが ✓ になったら、VM の作成は完了
サーバのインストール
SteamCMD のインストール
作成した VM インスタンスに接続する
Google Cloud の VM インスタンス一覧から、SSH を選択しブラウザコンソールを起動
作業用ユーザを作成し、パスワードを設定
作成した steam ユーザに変更
SteamCMD をインストール
7d2d サーバのインストール
引き続き steam ユーザで SteamCMD を起動
インストール先のディレクトリを設定
匿名で Steam にログイン
7 Days to Die 専用サーバをインストール
ダウンロードに 3 億年掛かるので気長に待つ
SteamCMD を終了
(上記を一括で実行する用)
サーバの起動
7d2d サーバの設定
インストールされた 7D2D のディレクトリに移動
任意の設定に変更
下記の設定をしておけば、Web dashboard からもコンソールの利用が出来る
Option | Values | Description |
---|---|---|
WebDashboardEnabled | true | Enable the web dashboard |
EnableMapRendering | true | Enable rendering of the map to tile images while exploring it. This is used e.g. by the web dashboard to display a view of the map. |
7d2d サーバの起動
サーバを起動
初回起動時はワールド作成に 3 万年かかるため、気長に待つ
Telnet でサーバの稼働状況が確認できる
Web dashboard オプションを有効にしていた場合、
以下のアドレスで外部から Web dashboard に接続できる
ゲームクライアントで ゲームに参加する > IP に接続 から、
VM インスタンスの 外部 IP と、ポート(デフォルトは26900
)を設定し、
クライアントからサーバを検索できるようにすることで、他の人もサーバに参加できるようになる
Mod の追加(オプション)
Mod 関連のファイルは主に <Game directory>/Mods
(/home/steam/7d2d_server/Mods
) 以下に格納される
詳しい Mod のインストール・設定方法は各 Mod 配布元で確認すること
以下手順では、UI 拡張 Mod の SMXcore と SMXhud、SMXmenu、SMXui を追加する
これらはサーバ・クライアントの両方に Mod が導入されている必要があるため注意
ゲームサーバが停止されている状態で、Mod の追加を行う
steam ユーザに変更
zip ファイルを解凍するため、unzip をインストールする
Mod をダウンロードするディレクトリを作成し、それをカレントディレクトリにする
各 Mod ファイルをダウンロード
ダウンロードした zip ファイルを解凍
不要になった zip ファイルを削除
解凍した Mod ファイルから、Mod 本体を Mods
ディレクトリにコピー
Mod ファイルが規定の階層に配置されたことを確認
サーバを開始する
Note
専用サーバの設定項目
以下のページにて、各設定項目の概要を記載
サーバのシャットダウン
Telnet から shutdown
コマンドを実行し、ゲームサーバをシャットダウンすることが出来る
設定変更などをした後、初回と同様のコマンドでサーバを起動することができる
ゲームデータの保存先
サーバが開始されると、ホームディレクトリ下の .local
ディレクトリ配下にゲームデータが保存される
ゲームネームディレクトリ(以下の例ではMy Game
)配下のデータを削除すると、そのゲームデータは削除される
また、serverconfig.xml
で GameName
を変更すると、新しいゲームが作成される
新しいゲームを始める際、容量に不足がなければ古いゲームデータを削除する必要はない
なお、上記例での Windows ローカルホストでの保存先は以下のようになる
対応するディレクトリにコピーすれば、データの移管が可能
Web Dashboard の利用
Web Dashboard からコンソールを利用する場合、ユーザ登録が必要
インゲームコンソールで以下コマンドを実行し、表示されるウィンドウに従って Web ユーザ登録を行う
管理者権限の付与
インゲームコンソールや Web Dashboard から上級コマンドを実行したい場合、管理者権限と権限レベルが必要
Telnet から管理者権限を管理、操作することが出来る
権限レベルは 0
が最も高く、明示されていないプレイヤーは 1000
として扱われる
プレイヤー名で追加・削除を行う場合は、対象のプレイヤーがサーバにログインしている必要がある
Telnet で接続
-
Admin ユーザの追加
-
Admin ユーザの削除
-
Admin ユーザの一覧を表示
Error
mmap(PROT_NONE) failed
でサーバが異常終了する
朝起きたらゲームサーバが停止していたため、
7d2d_server/7DaysToDieServer_Data/
以下の
output_log__yyyy-MM-dd__HH-mm-ss.txt
からログを確認
mmap(PROT_NONE) failed
で異常終了していたことを確認
デフォルトの vm.max_map_count
値 65530
が低すぎて足りなくなったらしい
下記コマンドで、一時的に上限値を増やす
この場合、インスタンスの停止を行うと、再起動時にはデフォルトの値に戻る
もしくは、/etc/sysctl.conf
ファイルに追記して値を更新する
- Bug - [solved][ il2cpp android] mmap(PROT_NONE) failed - Unity Forum
- Linux 版の Rust サーバーが mmap(PROT_NONE) failed で落ちる - Chase The Core
- パラメーター “max_map_count” とは何ですか? サーバーのパフォーマンスへの影響はありますか? - Red Hat Customer Portal
- 2.2. 永続的なチューニングパラメーターの設定 Red Hat Enterprise Linux for Real Time 7 | Red Hat Customer Portal
Ref
- 7 Days to Die | The Survival Horde Crafting Game
- SteamCMD - Valve Developer Community
- 7 Days to Die Dedicated Server - Valve Developer Community
- 7Days To Die Ubuntu を用いたサーバの建て方 気まま研究所
- GCP で無料の Minecraft サーバを立ててみた
- SIGSEGV - Bug Pool - 7 Days to Die
- ufw で複数ポートを許可する設定をするには | エクセルソフト ブログ
- 7 Days to Die サーバーをインストール (Ubuntu 18.04 LTS) | ほげぴよ.com
- Linux でユーザー追加(adduser/useradd) | Ryoma’s Blog
- 7 Days to Die - Linux Server Management
- Google Cloud の Cloud Firewall を徹底解説! - G-gen Tech Blog
- Steam Community :: Guide :: Installing Linux dedicated server for 7 days to die
- How to create a admin user for dashboard - General Support - 7 Days to Die