本文へスキップ
Counter-Strike 2

Counter-Strike 2サーバーを構築する

CS2専用サーバーはSteamCMD(app 730、約60GB)でインストールし、cs2.shで起動します。最新のUbuntu VPSまたはWindows PC、30分ほどのセットアップ、オンライン表示用のサーバートークン(GSLT)を用意してください。参照元:Hetzner Communityのチュートリアル、ホスティング各社のガイド、Valve Wiki(執筆時は取得できず、要照合)。

最終更新日:2026/10/9

CS2専用サーバーはSteamCMD(app 730、約60GB)でインストールし、cs2.shで起動します。最新のUbuntu VPSまたはWindows PC、30分ほどのセットアップ、オンライン表示用のサーバートークン(GSLT)を用意してください。参照元:Hetzner Communityのチュートリアル、ホスティング各社のガイド、Valve Wiki(執筆時は取得できず、要照合)。

手順ごとのインストール

  1. マシンを用意:Ubuntu 24.04(またはWindows)、10〜32人向けに4vCPU以上、RAM 8GB、ディスク80GB。

  2. rootではないユーザー(steam)を作成し、32bitライブラリ付きでSteamCMDをインストールします。

  3. steamcommunity.com/dev/managegameserversでAppID 730のGSLTトークンを作成します(サーバーごとに1つ)。

  4. app_update 730 validateでサーバーをダウンロードします(10〜30分)。

  5. 64bit SDKのsteamclient.soリンクを作成し、game/フォルダから./cs2.shでサーバーを起動します。

  6. server.cfgをgame/csgo/cfg/に置きます(「CS2 server.cfg ジェネレーター」ツール参照)。

  7. ufw、事業者のファイアウォール、ルーターで27015(UDP/TCP)、27005(UDP)、27020(UDP)を開放します。

  8. CS2のゲーム内コンソールでconnect IP:27015を実行して接続します。

  9. 自動起動用のsystemdサービスを作成し、バックアップとアップデートを予約します。

前提条件

  • OS:Ubuntu 24.04(Hetznerのチュートリアルで使用)またはWindows 10/11、Windows Server。
  • リソース:10〜32人向けに4vCPU、RAM 8GB、ディスク80GB(Hetznerチュートリアルの推奨)。ダウンロードは約60GBです。
  • アカウント:GSLTトークン(AppID 730)の作成にSteamアカウントが必要です。トークンがないとサーバーはローカルネットワークに限定されます。
  • 注意:旧CS:GOサーバーはapp 740、CS2はapp 730を使います。

Windowsでのローカルインストール

ValveのSteamCMD公式ドキュメントからSteamCMDをダウンロードしてC:\steamcmdに展開し、サーバーをインストールします。Windowsでのcs2.exeの正確なパスは公式情報で確認できていません。インストール後にgame\binフォルダ内で探し、-dedicated -consoleで起動し、ゲーム内でconnect 127.0.0.1を実行してテストしてください。

cd C:\steamcmd
steamcmd +force_install_dir C:\cs2-server +login anonymous +app_update 730 validate +quit

Linux VPS:ユーザーと依存関係

Hetzner Communityチュートリアル(Ubuntu 24.04)のコマンドです。steamアカウントは本番運用でsudoが不要なので、インストール後にその権限を外してください。

sudo apt update && sudo apt upgrade -y
sudo adduser steam
sudo usermod -aG sudo steam
su - steam
sudo apt-get install lib32gcc-s1 -y
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install steamcmd -y

Linux VPS:サーバーのダウンロード

Hetznerのチュートリアルでは、専用のSteamアカウントで一度ログインすること(steamcmd +login アカウント名)も勧めています。匿名インストールで動作するガイドもあるので、環境に合う方を試してください。

mkdir -p ~/cs2-server && cd ~/cs2-server
steamcmd +login anonymous +force_install_dir ~/cs2-server +app_update 730 validate +quit

# SDK 64 bits (ignorer si le lien existe déjà)
mkdir -p ~/.steam/sdk64
ln -s ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

Linux VPS:初回起動

必ずgame/フォルダから./cs2.sh(バイナリを直接ではなく)を実行します。YOUR_GSLT_TOKENを置き換えてください。モード:casual 0/0、competitive 0/1、deathmatch 1/2(+game_type/+game_mode)。-insecureはVACを無効にするため、プライベートサーバー専用です。テストにはscreenやtmuxを使います(screen -S cs2)。

cd ~/cs2-server/game
./cs2.sh -dedicated -port 27015 -maxplayers 10 \
  +hostname "My CS2 Server" +map de_dust2 \
  +game_type 0 +game_mode 1 \
  +sv_setsteamaccount YOUR_GSLT_TOKEN

開放するポートとLinuxファイアウォール(ufw)

ゲームポートを変えるには、起動コマンドに-port Nを追加し(インスタンスごとに別のポート)、27015の代わりにそのポートを開放します。

必要なものだけを開放し、サーバー自身ではなく別の回線からテストします。

  • 27015/udp:ゲーム通信
  • 27015/tcp:RCONとping
  • 27005/udp:クライアント通信
  • 27020/udp:SourceTV(デモ録画)
  • Hetznerチュートリアルに記載のその他のポート:27036/tcp(Steam Remote Play)、3478/udp(NAT traversal)、4379-4380/udp(マッチメイキング)、22/tcp(SSH)。
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw status

Windowsファイアウォール(netsh)

管理者のコマンドプロンプトでポートごとに受信規則を作成します(または「セキュリティが強化されたWindows Defenderファイアウォール」を開きます)。

netsh advfirewall firewall add rule name="Counter-Strike 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Counter-Strike 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020

プロバイダーのファイアウォールとポート転送(ルーター)

ホスティング事業者(OVH、Hetzner、Scalewayなど)では、事業者側のファイアウォールまたは「セキュリティグループ」でも同じポートを開放します。上流にファイアウォールがあるとufwだけでは不十分です。自宅サーバーの場合は、ルーターで各ポートをマシンのローカルIP(固定またはDHCP予約)へ転送(NAT)します。

テスト:別の回線から、Counter-Strike 2のサーバーブラウザまたはコンソールで「IP:ポート」としてサーバーを追加します。失敗する場合は、サービス起動、ローカルFW、事業者FW、NAT転送の順に確認してください。

自動起動:systemdサービス

rootで/etc/systemd/system/cs2.serviceを作成し、有効化します。ユーザーとパスは環境に合わせ、ログはjournalctl -u cs2 -fで確認します。

[Unit]
Description=Counter-Strike 2 dedicated server
After=network-online.target
Wants=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/cs2-server/game
ExecStart=/home/steam/cs2-server/game/cs2.sh -dedicated -port 27015 -maxplayers 10 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now cs2

Windows:起動時のタスクスケジューラ

Windowsでは、タスクスケジューラがシステム起動時に.batスクリプトを実行します(管理者のプロンプトでコマンドを実行)。

schtasks /Create /TN "Counter-Strike 2 server" /TR "C:\cs2-server\start-cs2.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST

アップデート、バックアップ、定期再起動

更新前にサービスを停止し(インストールと同じSteamCMDコマンド)、設定とデータのファイルを定期的にバックアップします。時間とともに動作が重くなる場合は、毎日の再起動を予約してください。

sudo systemctl stop cs2
steamcmd +force_install_dir /home/steam/cs2-server +login anonymous +app_update 730 validate +quit
sudo systemctl start cs2

# backup
tar czf ~/cs2-$(date +%F).tar.gz -C /home/steam/cs2-server game/csgo/cfg game/csgo/gamemodes_server.txt

# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart cs2

サーバーの登録と見つけ方

https://game-rank.com/jeux/counter-strike にサーバーを登録すると、コミュニティに表示されます。ゲーム内ではサーバーブラウザを使うか、IP:ポートで直接接続します。

トラブルシューティング:よくあるエラー

  • サーバーがLANモードで起動する/表示されない:GSLTトークンがない、無効、または別サーバーで使い回している。対処:このサーバー専用のAppID 730用トークンを作成し、+sv_setsteamaccountで渡します。
  • サーバーがクラッシュする/steamclient.soが見つからない:64bit SDKのリンクがありません。~/.steam/sdk64/steamclient.soを手順どおり作成し、game/から./cs2.shを実行します。
  • 外部から見えない:サービスは動いているが誰も接続できない。原因:ポートが閉じている(ufw、事業者FW、NAT転送の不足)。対処:上記のポートを3段階すべてで開放し、別の回線からテストします。
  • 起動時にポートが使用中:別のインスタンスがポートを占有しています。対処:ss -lunp | grep 27015でプロセスを確認し、古いインスタンスを停止するか、サーバーごとに-portで別のポートを指定します。
  • SteamCMDの「Failed to install app」やダウンロード停止:原因はディスク満杯かフォルダー権限不足が多いです。df -hとフォルダーの所有者を確認し、validate付きでコマンドを再実行します(必要なら複数回)。

よくある質問

CS2は今もCS:GOのコマンドやファイルを使いますか?
一部は同じです。設定フォルダーはgame/csgo/cfg/のままで、mp_*のcvarの多くも存在しますが、サーバーは別アプリケーション(730)で、SourceModプラグインやCS:GOのWorkshop APIなどはそのままでは使えません。不明な点はお使いのビルドで確認してください。
CS2サーバーの人数とマシンの目安は?
Hetznerのチュートリアルは4vCPU・RAM 8GB・ディスク80GBで10〜32人を想定しています。起動コマンドの-maxplayersでスロットを制限できます。
rootでサーバーを起動してもよいですか?
非推奨です。管理者権限のない専用ユーザー(例:steam)を作成し、そのユーザーでインストールと起動を行ってください。サーバーやプラグインの脆弱性がマシン全体に及ぶのを防げます。
Counter-Strike 2サーバーがリストに表示されません。何を確認すべき?
まず、全レベルでポートが開放されているか、サーバーがLANモード(sv_lan 0)でないか、ゲームが要求する場合は有効なサーバートークン(GSLT)を渡しているかを確認します。Steamのリスト反映には数分かかることがあるため、その間はIP:ポートで接続してください。

Counter-Strike 2サーバー用ツール

Counter-Strike 2
Counter-Strike 2ログイン不要
Counter-Strike 2サーバーのserver.cfgと起動コマンドを作成:ゲームモード、ラウンド、所持金、ボット、パスワード。
設定起動開く
ドキュメント
Counter-Strike 2
Counter-Strike 2要ログイン
CS2のWorkshopマップを一覧化:+host_workshop_mapパラメーター、gamemodes_server.txtのマップグループ、ds_workshop_changelevelコマンド。
Workshopマップ開く
ドキュメント