本文へスキップ
Counter-Strike 1.6

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

Counter-Strike 1.6サーバーは、cstrike Modを使うHLDS(Half-Life Dedicated Server、SteamCMD app 90)です。軽量で、小さなVPSで十分です。参照元:VultrとGentooのガイド、ホスティング各社のガイド、Pterodactylのegg。Valve Wikiは取得できなかったため要照合です。

最終更新日:2026/10/9

Counter-Strike 1.6サーバーは、cstrike Modを使うHLDS(Half-Life Dedicated Server、SteamCMD app 90)です。軽量で、小さなVPSで十分です。参照元:VultrとGentooのガイド、ホスティング各社のガイド、Pterodactylのegg。Valve Wikiは取得できなかったため要照合です。

手順ごとのインストール

  1. Linux(Ubuntu/Debian)またはWindowsのマシンを用意します。サーバーは非常に軽量です。

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

  3. app_set_config 90 mod cstrikeの後にapp_update 90 validateでHLDSをインストールします。

  4. 何もダウンロードされなくなるまでapp_update 90 validateを複数回実行します(HLDSの既知の癖)。

  5. cstrike/server.cfg(「CS 1.6 server.cfg ジェネレーター」)とcstrike/mapcycle.txt(「mapcycle.txtエディター」)を編集します。

  6. 目的のマップとスロット数でhlds_run -game cstrike(Windowsではhlds.exe)を起動します。

  7. ufw、事業者側、ルーターで27015 UDP/TCP(HLTV用に27020 UDP)を開放します。

  8. ローカルでテスト(ゲーム内コンソールでconnect 127.0.0.1)し、その後別の回線から確認します。

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

前提条件

  • OS:Linux(Ubuntu/Debian)またはWindows。HLDSは32bitプログラムです。
  • リソース:参照した資料に公式の要件はありません。重いプラグインなしの16〜32スロットなら、1vCPU・RAM 1GBで足りることが多いです(推定、要検証)。
  • アカウント:匿名でインストールします。参照した資料にHLDS用のGSLTトークンの記載はありません。
  • コミュニティ版:ReHLDS(非公式)が広く使われている代替です。このガイドはValveのHLDSを扱います。

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

SteamCMDをC:\steamcmdに展開し、HLDSをインストール(何もダウンロードされなくなるまで更新を繰り返す)して、hlds.exeを実行します。Counter-Strike 1.6のコンソールでconnect 127.0.0.1を実行してテストします。

cd C:\steamcmd
steamcmd +force_install_dir C:\hlds +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
steamcmd +force_install_dir C:\hlds +login anonymous +app_update 90 validate +quit

cd C:\hlds
hlds.exe -console -game cstrike +maxplayers 32 +map de_dust2

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

sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 steamcmd
su - steam

Linux VPS:HLDSのインストール

複数のガイド(Vultr、Gentoo、ホスティング各社)が、HLDSは複数回更新する必要があると述べています。2回目と3回目のコマンドはapp_update 90 validateの繰り返しです。Modはapp_set_config 90 mod cstrikeで選びます。

steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_set_config 90 mod cstrike +app_update 90 validate +quit
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit

Linux VPS:初回起動

インストールフォルダーからhlds_runを実行します。サーバーはマップ変更のたびにcstrike/server.cfgを、ローテーションにはcstrike/mapcycle.txtを読み込みます。cstrike/liblist.gamはModを記述するファイルです(Metamodの読み込みは「liblist.gamエディター」ツール参照)。

cd /home/steam/hlds
./hlds_run -console -game cstrike +ip 0.0.0.0 +port 27015 +maxplayers 32 +map de_dust2

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

これらはHLDSの一般的な値です(参照した公式ページでは未確認)。ポートを変えるには起動コマンドに+port Nを付け、27015の代わりに開放します。

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

  • 27015/udp:ゲーム(HLDS既定ポート)
  • 27015/tcp:RCON
  • 27020/udp:HLTV(任意)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw status

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

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

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

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

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

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

自動起動:systemdサービス

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

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

[Service]
User=steam
WorkingDirectory=/home/steam/hlds
ExecStart=/home/steam/hlds/hlds_run -console -game cstrike +ip 0.0.0.0 +port 27015 +maxplayers 32 +map de_dust2
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

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

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

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

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

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

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

sudo systemctl stop cs16
steamcmd +force_install_dir /home/steam/hlds +login anonymous +app_update 90 validate +quit
sudo systemctl start cs16

# backup
tar czf ~/cs16-$(date +%F).tar.gz -C /home/steam/hlds cstrike/server.cfg cstrike/mapcycle.txt cstrike/liblist.gam cstrike/addons cstrike/banned.cfg cstrike/listip.cfg

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

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

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

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

  • インストール後にファイルが足りない/サーバーが起動しない:HLDSは初回インストールが不完全になることで知られています。app_set_config 90 mod cstrikeを付けてapp_update 90 validateを2〜3回再実行します。
  • マップ変更で止まる:mapcycle.txtに記載したマップがcstrike/maps/にありません。各.bspが存在するか確認するか、その行を削除します。
  • 外部から見えない:サービスは動いているが誰も接続できない。原因:ポートが閉じている(ufw、事業者FW、NAT転送の不足)。対処:上記のポートを3段階すべてで開放し、別の回線からテストします。
  • 起動時にポートが使用中:別のインスタンスがポートを占有しています。対処:ss -lunp | grep 27015でプロセスを確認し、古いインスタンスを停止するか、サーバーごとに-portで別のポートを指定します。
  • SteamCMDの「Failed to install app」やダウンロード停止:原因はディスク満杯かフォルダー権限不足が多いです。df -hとフォルダーの所有者を確認し、validate付きでコマンドを再実行します(必要なら複数回)。
  • srcds_run:「No such file or directory」や32bitライブラリ不足:Sourceサーバーは32bitプログラムです。i386アーキテクチャを有効化(dpkg --add-architecture i386)し、lib32gcc-s1とlib32stdc++6をインストールします。

よくある質問

CS 1.6サーバーのSteamCMD IDは?
HLDSはapp 90で、+app_update 90 validateの前に+app_set_config 90 mod cstrikeでModを選びます。
MetamodやAMX Mod Xはどこに置きますか?
これらのコミュニティモジュールはcstrike/addons/に置き、Metamodはcstrike/liblist.gamのgamedll_linux(またはgamedll)行から読み込まれます。選んだ配布物のドキュメントに従ってください。「liblist.gamエディター」ツールでこの行を編集できます。
rootでサーバーを起動してもよいですか?
非推奨です。管理者権限のない専用ユーザー(例:steam)を作成し、そのユーザーでインストールと起動を行ってください。サーバーやプラグインの脆弱性がマシン全体に及ぶのを防げます。
Counter-Strike 1.6サーバーがリストに表示されません。何を確認すべき?
まず、全レベルでポートが開放されているか、サーバーがLANモード(sv_lan 0)でないか、ゲームが要求する場合は有効なサーバートークン(GSLT)を渡しているかを確認します。Steamのリスト反映には数分かかることがあるため、その間はIP:ポートで接続してください。

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

Counter-Strike 1.6
Counter-Strike 1.6ログイン不要
Counter-Strike 1.6(HLDS)サーバーのserver.cfgを作成:ラウンド、所持金、C4、フレンドリーファイア、物理、ネットワークレート。
設定HLDS開く
ドキュメント
Counter-Strike 1.6
Counter-Strike 1.6ログイン不要
Counter-Strike 1.6サーバーのマップローテーションを作成:整形、重複削除、最初のマップを指定可能。
マップ設定開く
ドキュメント
Counter-Strike 1.6
Counter-Strike 1.6ログイン不要
Counter-Strike 1.6のliblist.gamを生成:ファイルをインポートし、ゲームDLL(例:Metamod)とURLを変更します。
Metamod設定開く
ドキュメント