本文へ移動

ガイド

SteamCMDで専用サーバーを入れる方法

SteamCMDは、Steamのゲームの専用サーバーをコマンドで入れたり更新したりするための公式のツールです。Ubuntu 24.04で、入れるところから常駐させるところまでを書きます。

ro1ro1(Webエンジニア(実務6年目))公開 2026-10-15更新 2026-10-15料金確認 2026-10-15

PR本ページはプロモーションを含みます。紹介料の有無で評価や順位は変えていません(広告掲載ポリシー)。

この記事の結論

  • Ubuntu 24.04では、multiverseとi386を有効にしてから apt で steamcmd を入れます。途中で出る利用規約には同意が要ります。
  • 専用サーバーは +force_install_dir、+login anonymous、+app_update アプリID validate、+quit の順で入れます。
  • アプリIDはSteamDBかValveの開発者wikiで調べます。パルワールドは2394010、Valheimは896660です。

SteamCMDとは

SteamCMDは、Valveが配っているコマンドラインのSteamです。画面のあるSteamクライアントを使わずに、専用サーバーのダウンロード、更新、ファイルの検証ができます。画面のないLinuxのVPSでゲームのサーバーを動かすときは、ほとんどの場合これを使います。

レンタルのゲーム用VPSでテンプレートを選んだ場合は、SteamCMDでの導入まで済んだ状態で起動します。この記事は、テンプレートのないゲームを入れたいときや、素のUbuntuから自分で組みたいときのための手順です。

Ubuntu 24.04に入れる

SteamCMDは32ビットのライブラリを使うので、i386のアーキテクチャを足してから入れます。パッケージはmultiverseのリポジトリにあります。

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

入れている途中で、Steamの利用規約(Steam License Agreement)の画面が出ます。矢印キーで「I AGREE」を選んでEnterを押すと先に進みます。同意しないと入りません。

aptで入れたSteamCMDは /usr/games/steamcmd に置かれます。/usr/games にパスが通っていない場合は、フルパスで呼ぶか、次のようにパスに足します。

echo 'export PATH="$PATH:/usr/games"' >> ~/.bashrc
source ~/.bashrc

専用のユーザーを作る

ゲームのサーバーはrootで動かさず、専用のユーザーを作ってそのユーザーで動かします。サーバーのプログラムに穴があったときに、被害をそのユーザーのファイルだけに抑えるためです。

sudo useradd -m -s /bin/bash steam
sudo -iu steam

以下のコマンドは、この steam ユーザーで打ちます。初めて steamcmd を起動すると、SteamCMD本体の更新がダウンロードされます。

steamcmd +quit

専用サーバーを入れる

専用サーバーは次の形のコマンドで入れます。

steamcmd +force_install_dir /home/steam/palworld +login anonymous +app_update 2394010 validate +quit

それぞれの意味は次のとおりです。

部分 意味
+force_install_dir パス 入れる場所。+login より前に書く
+login anonymous 匿名でログインする
+app_update アプリID 専用サーバーを入れる、または更新する
validate ファイルが壊れていないか確かめ、足りない分を取り直す
+quit 終わったらSteamCMDを閉じる

+force_install_dir は +login より前に置きます。順番が逆だと、SteamCMDが警告を出し、思わぬ場所に入ることがあります。+force_install_dir を省くと、~/.steam/steam/steamapps/common/ の下などに入ります(環境で変わります)。

validate は、ファイルを一つずつ確かめるので時間がかかります。毎回の更新では外し、おかしいと思ったときだけ付けても構いません。

Windows向けの専用サーバーしかないゲームをLinuxで取ってくるときは、+@sSteamCmdForcePlatformType windows を +login の前に足します。ただし、取ってきたあとに動かすにはWineなどが要り、手順はゲームごとに変わります。

アプリIDの調べ方

アプリIDは、ゲーム本体ではなく専用サーバーのものを使います。たとえばパルワールドのゲーム本体は1623730ですが、専用サーバーは2394010です。

調べ方は2つあります。

  • SteamDB(steamdb.info)で「ゲーム名 Dedicated Server」と検索する。App Type が Tool になっているものが専用サーバーです
  • Valveの開発者wiki(developer.valvesoftware.com)の Dedicated Servers List を見る

このサイトで扱っているゲームの専用サーバーのアプリIDは次のとおりです。

ゲーム アプリID
パルワールド 2394010
Valheim 896660
7 Days to Die 294420
Enshrouded 2278520
Satisfactory 1690800
Project Zomboid 380870
Don't Starve Together 343050
Core Keeper 1963720
Soulmask 3017300(Linux)、3017310(Windows)
Conan Exiles 443030

マイクラ(Java版・統合版)、テラリア、Factorio、HytaleはSteamCMDを使いません。それぞれの公式サイトや公式の配布物から入れます。

更新のスクリプト

ゲームが更新されると、古いサーバーには入れなくなります。止める、更新する、起動する、を1つのスクリプトにしておくと楽です。下の例は、あとで作るsystemdのサービス(palworld)を前提にしています。

#!/bin/bash
# /home/steam/update-palworld.sh
set -e
sudo systemctl stop palworld
/usr/games/steamcmd +force_install_dir /home/steam/palworld +login anonymous +app_update 2394010 +quit
sudo systemctl start palworld
chmod +x /home/steam/update-palworld.sh

steam ユーザーが systemctl を使えるように、そのサービスの操作だけを sudo で許可します。sudo visudo -f /etc/sudoers.d/steam で次の行を書きます。

steam ALL=(root) NOPASSWD: /usr/bin/systemctl stop palworld, /usr/bin/systemctl start palworld, /usr/bin/systemctl restart palworld

毎朝自動で更新したいなら、steam ユーザーの crontab(crontab -e)に書きます。遊んでいる人がいない時間を選んでください。

0 5 * * * /home/steam/update-palworld.sh >> /home/steam/update.log 2>&1

systemdで常駐させる

SSHを閉じてもサーバーが動き続け、落ちたときやVPSを再起動したときに自動で立ち上がるように、systemdのサービスにします。起動のコマンドはゲームごとに違うので、ExecStart を書き換えてください。

# /etc/systemd/system/palworld.service
[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/palworld
ExecStart=/home/steam/palworld/PalServer.sh -port=8211 -players=16
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now palworld
systemctl status palworld
journalctl -u palworld -f

User=steam で、サービスを steam ユーザーの権限で動かします。ログは journalctl -u palworld で見られます。

最後に、ゲームのポートを開けます。ufwとVPSの管理画面の両方で許可が要ることが多いです。詳しくはポート開放のやり方を見てください。

sudo ufw allow OpenSSH
sudo ufw allow 8211/udp
sudo ufw enable

Windowsで使う場合

自宅のWindowsのPCに入れる場合も、コマンドの形は同じです。Valveの開発者wikiの SteamCMD のページから Windows 用の steamcmd.zip を取ってきて、C:\steamcmd のような、空白や日本語を含まないフォルダに展開します。

cd C:\steamcmd
steamcmd.exe +force_install_dir C:\servers\valheim +login anonymous +app_update 896660 validate +quit

初めて起動したときに本体の更新が入るのはLinuxと同じです。常駐させるなら、タスクスケジューラで、PCの起動時にサーバーの起動用のバッチファイルを動かす設定にしておくと、再起動のあとも自動で立ち上がります。

自宅のPCで動かす場合は、ルーターのポート開放も要ります。電気代も含めた考え方は自宅PCかレンタルかに書いています。

よくあるつまずき

症状 原因 対処
steamcmd: command not found /usr/games にパスが通っていない /usr/games/steamcmd とフルパスで呼ぶ
入れたはずの場所にファイルがない +force_install_dir を +login の後ろに書いた 順番を直して入れ直す
No subscription と出る アプリIDがゲーム本体のもの 専用サーバーのアプリIDに直す
steamclient.so が見つからないと出て起動しない Steamのライブラリの場所をサーバーが見つけられない find ~ -name steamclient.so で探し、各ゲームの案内に従ってリンクを張る
更新のあと入れない クライアントとサーバーの版がずれている app_update をもう一度、validate 付きで実行する

自分で組むか、テンプレートを使うか

SteamCMDで自分で組むと、好きなゲームを好きな形で動かせます。その代わり、更新、バックアップ、ポートの設定まで自分で面倒を見ることになります。

ConoHa for GAMEとXServer VPS for Gameには、ここで挙げたゲームのテンプレートがあり(Conan ExilesはXServer VPS for Gameだけ)、申し込むとサーバーが入った状態で起動します。手順を覚える前に、まずテンプレートで遊んでみるのも一つの手です。

料金重視ならここ

ConoHa for GAME

同じメモリなら月額がいちばん安い

月390円〜(1GB・36か月)

対応ゲームの多さならここ

XServer VPS for Game

テンプレート30タイトル、新作への対応が早い

月1,265円〜(2GB・36か月)

よくある質問

QSteamCMDにはSteamのアカウントが要りますか?

Aこの記事で扱うゲームの専用サーバーは、匿名ログイン(+login anonymous)で入れられます。専用サーバーによってはゲームを持っているアカウントでのログインが要るものもあり、その場合は各ゲームの案内に書かれています。

QアプリIDはどこで調べればいいですか?

ASteamDBでゲーム名と Dedicated Server で検索すると出てきます。種類(App Type)が Tool になっているのが専用サーバーです。Valveの開発者wikiの Dedicated Servers List にも一覧があります。

Qrootのまま動かしてはいけませんか?

A動きはしますが、ゲームのサーバーに不具合があったとき、サーバー全体を書き換えられる恐れがあります。専用のユーザーを作り、その権限で動かすのが安全です。

Qサーバーの更新はどうすればいいですか?

A入れたときと同じ app_update のコマンドをもう一度実行すると、新しい版があれば差分だけ取ってきます。サーバーを止めてから実行し、終わったら起動し直します。

QマイクラやテラリアもSteamCMDで入れられますか?

A入れられません。マイクラはminecraft.net、テラリアはterraria.org、Factorioはfactorio.comから専用サーバーを取ってきます。SteamCMDを使うのは、Steamで配られている専用サーバーだけです。

ほかのガイド