Left 4 Dead 2 のサーバーを構築する
Published on 2024/03/06Tags
概要
l4d2-docker を使用して Left 4 Dead 2 のサーバーを構築します。
前提条件
- Docker, Docker Compose が使用できる必要があります。
参考情報
サーバーの構築
Left 4 Dead 2 のサーバーを構築します。
-
サーバーに必要なフォルダを作成します。
フォルダ名 備考 addons Left 4 Dead に追加する addon 用のフォルダ
addon のダウンロード方法は こちら を参照して下さい。 -
Environment variables を参考に
server.cfg
を作成します。hostname "L4D2 Server" sv_region 4 sv_logecho 1 motd_enabled 0 rcon_password "mypassword"
-
Docker Compose を参考に
docker-compose.yaml
を作成します。version: "3.8" services: # https://github.com/Left4DevOps/l4d2-docker l4d2: image: left4devops/l4d2 ports: - "27015:27015" - "27015:27015/udp" volumes: - ./addons:/addons/ - ./server.cfg:/cfg/server.cfg
サーバーの起動/停止
-
コンテナを起動します。
docker compose up -d
-
コンテナを停止します。
docker compose down
-
コンテナを削除します。
docker compose rm
サーバへ接続
クライアントからサーバーに接続してキャンペーンをプレイします。
-
設定 > キーボード/マウス に進み
開発者コンソールを許可
を有効にします。 -
` キーを押下し Console を開きます。
-
次のコマンドを入力し接続するサーバーを指定します。
- ipaddress: サーバーの IP アドレスを設定します。
mm_dedicated_force_servers {ipaddress}:27015
-
キャンペーンのロビーを作成します。
- キャンペーン: 任意のキャンペーンを選択します。
- 難易度: 任意の難易度を選択します。
- ゲームの公開レベル:
フレンド専用ゲーム
を選択します。 - サーバーのタイプ:
最適な専用サーバー
を選択します。
サーバーの公開
Tunnel を構築して自宅サーバーを公開する方法 を参考にしてください。
次のように nginx を Left 4 Dead 2 に読み替えてください。
Tunnel の構築
ファイアウォールの設定
Left 4 Dead 2 用のファイアウォールルールを作成します。
- 名前: l4d2
- プロトコルとポート
- 27015/TCP
- 27015/UDP
Tunnel の設定
-
インスタンスの
ネットワーク タグ
にl4d2
を設定します。 -
インスタンスのポートを解放します。
sudo ufw allow 27015 sudo ufw allow 27015/udp
-
rathole の設定ファイル server.toml を作成します。
# server.toml [server] bind_addr = "0.0.0.0:2333" [server.services.l4d2-tcp] token = "l4d2-token" type = "tcp" bind_addr = "0.0.0.0:27015" [server.services.l4d2-udp] token = "l4d2-token" type = "udp" bind_addr = "0.0.0.0:27015"
-
rathole の docker-compose.yaml を作成します。
version: "3.7" services: # https://github.com/rapiz1/rathole tunnel: image: rapiz1/rathole restart: unless-stopped command: ["--server", "/app/server.toml"] tty: true ports: # rathole - 2333:2333 # # Left 4 Dead 2 - 27015:27015 - 27015:27015/udp volumes: - ./server.toml:/app/server.toml
自宅サーバーの公開
-
rathole の設定ファイル client.toml を作成します。
# client.toml [client] remote_addr = "myserver:2333" [client.services.l4d2-tcp] token = "l4d2-token" type = "tcp" local_addr = "l4d2:27015" [client.services.l4d2-udp] token = "l4d2-token" type = "udp" local_addr = "l4d2:27015"
-
自宅サーバーと Tunnel の docker-compose.yaml を作成します。
# docker-compose.yaml > services > tunnel tunnel: depends_on: - l4d2 image: rapiz1/rathole restart: unless-stopped command: ["--client", "/app/client.toml"] tty: true volumes: - ./client.toml:/app/client.toml
RCON
rcon を使用してサーバーを設定します。もしかしたら間違ってるかもしれません...
-
` キーを押下し Console を開きます。
-
次のコマンドを入力し rcon を実行します。
- password: server.cfg > rcon_password を設定します。
- command: 実行するコマンドを設定します。
rcon_password {password} {command}
例えば rcon で
sv_cheats 1
を実行する場合は次のコマンドになります。rcon_password password sv_cheats 1