本文へスキップ
Team Fortress 2

Team Fortress 2サーバーを構築する

TF2専用サーバー(SteamCMD app 232250)は、マシンにゲームを所有していなくても匿名ログインでインストールでき、srcds_run -game tfで起動します。ディスク約8GB、所要約30分、サーバーリストに表示されるためのGSLTトークンが必要です。主な参照元:wiki.teamfortress.com(Linux dedicated server)。

最終更新日:2026/10/9

TF2専用サーバー(SteamCMD app 232250)は、マシンにゲームを所有していなくても匿名ログインでインストールでき、srcds_run -game tfで起動します。ディスク約8GB、所要約30分、サーバーリストに表示されるためのGSLTトークンが必要です。主な参照元:wiki.teamfortress.com(Linux dedicated server)。

手順ごとのインストール

  1. 空き容量8GB以上のLinuxマシン(Ubuntu/Debian)またはWindows PCを用意します。

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

  3. SteamCMDをダウンロードし、app_update 232250でサーバーをインストールします。

  4. steamcommunity.com/dev/managegameserversでGSLTトークンを作成します(リスト掲載に必要)。

  5. 「TF2 起動コマンド」ツールで起動コマンドを生成し、srcds_runを実行します。

  6. tf/cfg/server.cfg(「TF2 server.cfg ジェネレーター」)とtf/mapcycle.txtを編集します。

  7. ufw、事業者側、ルーターで27015 UDP/TCP、27020 UDP(および27005 UDP)を開放します。

  8. ローカルでconnect 127.0.0.1、次に別の回線からconnect IP:27015でテストします。

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

前提条件

  • OS:glibc 2.3.6以上のLinuxと約8GBの空きディスク(TF Wiki)。Windowsも利用可能です。
  • CPU/RAM:参照したWikiには記載がありません。公式の例は24スロットです。増やす前に負荷を確認してください。
  • アカウント:インストールは匿名で、サーバー側でTF2を所有している必要はありません。GSLTトークンの作成にSteamアカウントを使います。

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

SteamCMDをC:\steamcmdに展開し、サーバーをインストールして、Linuxと同じパラメーターでsrcds.exeを実行します。TF2のコンソールでconnect 127.0.0.1を実行してテストします。

cd C:\steamcmd
steamcmd +force_install_dir C:\tf2ds +login anonymous +app_update 232250 validate +quit

cd C:\tf2ds
srcds.exe -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKEN

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

TF Wikiが64bit版Debian/Ubuntu向けに挙げているパッケージです。新しいリリースではlibtinfo5やlibncurses5が提供されない場合があり、その際はWikiが手動ダウンロードを案内しています。

sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386
su - steam

Linux VPS:インストールと初回起動

TF Wikiのコマンドです。YOUR_GSLT_TOKENを置き換えてください(サーバーブラウザに表示されるには有効なトークンが必要)。prereleaseブランチは+app_updateの前に-beta prereleaseを付けます。

mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar zxf steamcmd_linux.tar.gz
./steamcmd.sh +force_install_dir ~/hlserver/tf2 +login anonymous +app_update 232250 +quit

cd ~/hlserver/tf2
./srcds_run -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKEN

知っておくべき設定ファイル

  • tf/cfg/server.cfg:名前、RCONパスワード、時間・ラウンド上限(Wikiの例:hostname、sv_contact、rcon_password、mp_timelimit、mp_maxrounds)。
  • tf/mapcycle.txt:マップのローテーション一覧(Wikiに形式の詳細はなく、他のSourceゲームと同様に1行1マップ)。
  • motd.txtとpure_server_whitelist.txt:任意(ウェルカムメッセージとsv_pureのホワイトリスト)。

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

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

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

  • 27015/udp:ゲーム通信(TF Wiki)
  • 27015/tcp:RCON(TF Wiki)
  • 27020/udp:SourceTV(TF Wiki)
  • 27005/udp:クライアント通信(Source標準値。参照したTF Wikiには記載なし)
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="Team Fortress 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Team Fortress 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020

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

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

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

自動起動:systemdサービス

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

[Unit]
Description=Team Fortress 2 dedicated server
After=network-online.target
Wants=network-online.target

[Service]
User=steam
WorkingDirectory=/home/steam/hlserver/tf2
ExecStart=/home/steam/hlserver/tf2/srcds_run -console -game tf -norestart +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

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

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

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

schtasks /Create /TN "Team Fortress 2 server" /TR "C:\tf2ds\start-tf2.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST

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

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

sudo systemctl stop tf2
steamcmd +force_install_dir /home/steam/hlserver/tf2 +login anonymous +app_update 232250 validate +quit
sudo systemctl start tf2

# backup
tar czf ~/tf2-$(date +%F).tar.gz -C /home/steam/hlserver/tf2 tf/cfg tf/addons tf/mapcycle.txt

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

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

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

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

  • サーバーは動いているがリストに出ない:GSLTトークンがない、または無効です。TF Wikiは有効なトークンを要求します。+sv_setsteamaccount(Dockerの場合はSRCDS_TOKEN)で渡して再起動します。
  • ライブラリエラー:新しいディストリビューションでlibtinfo.so.5 / libncurses.so.5が見つからない。対応するi386パッケージがあればインストールし、なければTF Wikiが示す手動ダウンロードに従います。
  • 外部から見えない:サービスは動いているが誰も接続できない。原因:ポートが閉じている(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をインストールします。

よくある質問

TF2サーバーは何人まで収容できますか?
公式の例は+maxplayers 24で、参照したWikiに上限の記載はありません。CPUとプラグインに合わせて+maxplayersを設定してください。
サーバーを更新するには?
TF Wikiによると、SteamCMDのインストールコマンド(+app_update 232250)を再実行するだけです。-autoupdateによる自動更新には詳細が不明な追加パラメーター(-steam_dir、-steamcmd_script)が必要なので、専用セクションのような定期更新をお勧めします。
rootでサーバーを起動してもよいですか?
非推奨です。管理者権限のない専用ユーザー(例:steam)を作成し、そのユーザーでインストールと起動を行ってください。サーバーやプラグインの脆弱性がマシン全体に及ぶのを防げます。
Team Fortress 2サーバーがリストに表示されません。何を確認すべき?
まず、全レベルでポートが開放されているか、サーバーがLANモード(sv_lan 0)でないか、ゲームが要求する場合は有効なサーバートークン(GSLT)を渡しているかを確認します。Steamのリスト反映には数分かかることがあるため、その間はIP:ポートで接続してください。

Team Fortress 2サーバー用ツール

Team Fortress 2
Team Fortress 2ログイン不要
Team Fortress 2サーバーのserver.cfgを作成:時間・ラウンド上限、チームバランス、クリティカル、弾の拡散、FastDL。
設定Source開く
ドキュメント
Team Fortress 2
Team Fortress 2ログイン不要
Team Fortress 2のsrcds_run起動コマンドを生成:マップ、スロット、sv_pure、ポート、mapcycle、GSLTトークン。
起動設定開く
ドキュメント