本文へスキップ
Multigaming

Multigamingサーバーを構築する

この汎用ガイドは、LinuxマシンまたはWindows Serverを任意のゲームサーバー向けに準備します:ホスト選び、非rootユーザー、SSH鍵、ファイアウォール、fail2ban、SteamCMD、Docker、systemdサービス、監視、バックアップ。所要時間は1〜2時間です。その後、各ゲームのインストールガイドに進んでください。

最終更新日:2026/10/9

この汎用ガイドは、LinuxマシンまたはWindows Serverを任意のゲームサーバー向けに準備します:ホスト選び、非rootユーザー、SSH鍵、ファイアウォール、fail2ban、SteamCMD、Docker、systemdサービス、監視、バックアップ。所要時間は1〜2時間です。その後、各ゲームのインストールガイドに進んでください。

手順ごとのインストール

  1. ホストとプランを選び(「ホストの選び方」参照)、Ubuntu LTSまたはDebian stableのVPS/専用サーバーを契約します。

  2. 提供されたrootアカウントでSSH接続し、システムを更新します。

  3. sudo付きの非rootユーザーを作成します。ゲームサーバーをrootで動かしてはいけません。

  4. 公開SSH鍵を登録し、rootログインとパスワードログインを無効にします。

  5. ufwを有効にします:受信は全拒否、SSHとゲームのポートのみ許可。

  6. fail2banを導入し、繰り返されるSSHログイン試行をブロックします。

  7. ゲームに応じてSteamCMD(Steamゲーム)またはDocker(コミュニティイメージ)を導入します。

  8. 各ゲームのガイドでサーバーをインストールし、ポートを開放します(「ポート確認ツール」参照)。

  9. サーバーを自動で起動・再起動するsystemdサービス(またはtmuxセッション)を作成します。

  10. 監視(ログ、リソース)と、テスト済みの定期バックアップを設定します。

ホストとプランの選び方

  • VPS(月数ユーロから):小規模サーバーなら十分です。多くのゲームは高速な1コアに依存するため、CPUが過度に共有されていないか確認します。
  • 専用サーバー:複数サーバーや多スロット向け。SSD/NVMeと高いCPUクロックを選びます。
  • 選定基準:プレイヤーに近い所在地(遅延)、DDoS対策の有無、無制限または十分なトラフィック枠、ネットワークファイアウォール(セキュリティグループ)、スナップショット、サポート。リソースは「サーバーリソース計算機」で見積もります。

初回ログインと非rootユーザー

203.0.113.10をサーバーのIP、gameadminを好きな名前に置き換えます:

ssh [email protected]
apt update && apt upgrade -y
adduser gameadmin
usermod -aG sudo gameadmin

SSH鍵とsshdの強化

手元のPCで ssh-keygen -t ed25519 のあと ssh-copy-id [email protected] を実行します。パスワード無効化の前に、別ターミナルで鍵ログインを必ずテストし、/etc/ssh/sshd_config.d/99-hardening.conf(Ubuntu 22.04以降、Debian 12)を作成します:

# /etc/ssh/sshd_config.d/99-hardening.conf
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

# Apply: sudo sshd -t && sudo systemctl reload ssh

ufwファイアウォール

ufwを有効にする前にSSHを許可して、締め出しを防ぎます。次にゲームのポートを追加します(FiveMの例:30120のTCPとUDP。各ゲームのポートは「ポート確認ツール」にあり、「ファイアウォールルール」ツールがコマンドを生成します)。ホストのネットワークファイアウォール(OVH、Hetzner、Scalewayなど:セキュリティグループ)にも同じ設定をします。

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo ufw status verbose

fail2ban

fail2banは、ログインに繰り返し失敗したアドレスを一時的にBANします。/etc/fail2ban/jail.localを作成します(jail.confは編集しない):

# sudo apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h

# sudo systemctl enable --now fail2ban
# sudo fail2ban-client status sshd

SteamCMD(Steamゲーム)

Valve公式アーカイブからの手動インストールです(rootではなくgameadminで実行)。APPIDをゲームの専用サーバーIDに置き換えます(SteamDBまたはゲームのガイド参照)。一部のサーバーは「anonymous」ではなくSteamアカウントが必要なので、ゲームのドキュメントを確認してください。

sudo apt install -y lib32gcc-s1 curl ca-certificates
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir ~/server +login anonymous +app_update APPID validate +quit

Docker(コミュニティイメージ)

Dockerの便利スクリプトはテスト向けで、本番ではdocs.docker.comのaptリポジトリ経由のインストール手順に従ってください。dockerグループへの追加後は再ログインが必要です。-pで公開したコンテナはufwを迂回するため、ホストのファイアウォールでも制限してください。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker gameadmin
# log out, log back in, then:
docker run --rm hello-world

systemdサービス

/etc/systemd/system/gameserver.serviceを作成し(User、WorkingDirectory、ExecStartをゲームの起動スクリプトに合わせる)、sudo systemctl daemon-reload && sudo systemctl enable --now gameserver を実行します。ログ:journalctl -u gameserver -f。

[Unit]
Description=Game server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=gameadmin
WorkingDirectory=/home/gameadmin/server
ExecStart=/home/gameadmin/server/start.sh
Restart=on-failure
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

代替案:tmux

tmuxはSSH切断後もサーバーを動かし続け、コンソールにも入れます(コマンド入力に便利)。Ctrl+B、続けてDでデタッチします。クラッシュや再起動後の自動再起動はしないため、本番ではsystemdを推奨します。

sudo apt install -y tmux
tmux new -s game
# inside tmux: run ./start.sh, then press Ctrl+B then D
tmux attach -t game

Windows Serverの場合

リモートデスクトップで接続し(3389番ポートは自分のIPに限定するかVPNを使用)、C:\gameserverにSteamCMDまたはゲームサーバーをインストール、管理者のPowerShellでポートを開放し、タスクスケジューラで起動時に自動実行します。想定外の停止を防ぐため、Windows Updateの再起動時刻は計画してください。

New-NetFirewallRule -DisplayName "Game UDP 27015" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow
New-NetFirewallRule -DisplayName "Game TCP 27015" -Direction Inbound -Protocol TCP -LocalPort 27015 -Action Allow
schtasks /Create /TN "GameServer" /TR "C:\gameserver\start.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST /F

自宅ホスティング:ポート転送

  • マシンに固定のローカルIPを割り当てます(ルーターのDHCP予約)。
  • ルーターで、ゲームの各ポートを正しいプロトコルでそのローカルIPへ転送(NAT)します。
  • マシンのファイアウォールも開放します。ローカルネットワークではなく外部(4G/5G)からテストします。
  • 回線事業者がCGNAT(専用のグローバルIPなし)を使っている場合、ポート転送はできません。グローバルIPを依頼するか、VPSやトンネルを使います。
  • 個人のIPを公開すると標的型DDoSなどのリスクがあります。公開サーバーには保護付きVPSのほうが安全です。

DDoS攻撃に関する注意

  • マシンのファイアウォールだけでは大量トラフィック型の攻撃は防げません。上流のホスト側で防御する必要があります。
  • プランのDDoS対策が何をカバーするか(UDP/ゲームプロトコル、ゲーミングモード)を確認してください。ホストによって異なります。
  • プロキシやトンネルを使う場合は元のIPを公開しないでください。RCONやWebコンソールも公開しないこと。

監視

便利なコマンド:サービスのログ、実際にリッスンしているポート(ファイアウォールと照合)、CPU/RAM負荷、ディスク容量。継続的な監視にはNetdataやPrometheusなどを追加し、RAMとディスクのアラートを設定します。

journalctl -u gameserver -f
sudo ss -lntup
htop
free -h
df -h

バックアップ

ワールドと設定を毎日バックアップし、複数世代を保持してサーバー外にコピーします。「バックアップスクリプト生成」ツールは保持設定付きの完全なスクリプトを作成します。最小例(crontab):

30 4 * * * tar -czf /backups/gameserver-$(date +\%Y\%m\%d).tar.gz -C /home/gameadmin server && find /backups -name 'gameserver-*.tar.gz' -mtime +7 -delete

トラブルシューティング

  • プレイヤーが接続できない:プロトコル(UDPかTCPか)、ufw、ホストのファイアウォール、サーバーが実際にリッスンしているか(sudo ss -lntup)を確認します。
  • 「Permission denied (publickey)」:鍵がユーザーの~/.ssh/authorized_keysにないか、パーミッションが緩すぎます(chmod 700 ~/.ssh、chmod 600 ~/.ssh/authorized_keys)。
  • サーバーが強制終了される(「Killed」、OOM):メモリ不足です。「dmesg | grep -i oom」を確認し、RAMを増やすかスロットやMODを減らします。スワップファイルはクラッシュを抑えますが速度は落ちます。
  • サービスが再起動を繰り返す:「journalctl -u gameserver -n 100」を確認し、パス、権限(サーバーがgameadmin所有であること)、SteamCMDに必要な32ビットライブラリの不足を調べます。
  • サーバーが一覧に出ない:クエリポートが塞がれているか、サーバーが未登録です。game-rank.com/jeuxに登録して掲載されましょう。

よくある質問

ゲームサーバーにはVPSと専用サーバーのどちらが良いですか?
小規模サーバーやテストならVPSで十分です。複数サーバー、多数のスロット、安定した性能(他の利用者の影響なし)が必要なら専用サーバーに移行します。
UbuntuとDebianのどちら?
どちらも使え、コマンドはほぼ同じです。サポート中のバージョン(Ubuntu LTSまたはDebian stable)を選び、ゲームのパブリッシャーが示す互換性を確認してください。
rootログインとパスワードログインは本当に無効にすべきですか?
強く推奨します。公開サーバーには1日数千回の試行があります。SSH鍵と非rootユーザーでリスクの大半をなくせます。ホストのレスキューコンソールも確保しておきましょう。
Dockerと直接インストールのどちら?
SteamCMDとsystemdによる直接インストールが最も簡単で、パブリッシャーの文書も充実しています。Dockerは分離でき、1台で複数サーバーを動かしやすい反面、ネットワーク、ボリューム、ファイアウォールという理解すべき層が増えます。

Multigamingサーバー用ツール

Multigaming
Multigamingログイン不要
FiveM、Minecraft、Rust、DayZ、ARK、Valheim、Palworld、CS2、Armaなどの既定ポートと、開放済みポート一覧の照合。
ポートネットワーク開く
ドキュメント
Multigaming
Multigamingログイン不要
ゲームごとの管理コマンド(Minecraft、Rust、ARK、Palworld、DayZ、CS2など)をパラメーター入りでコピー。ネットワーク接続なし。
RCON管理開く
ドキュメント
Multigaming
Multigamingログイン不要
再起動前にRCONでプレイヤーへ警告するcron、systemdタイマー、Windowsタスク(schtasks)を生成します。
再起動スケジュール開く
ドキュメント
Multigaming
Multigamingログイン不要
スロット数からゲームサーバーのCPU・RAM・ディスク・帯域を見積もります。式は公開、前提は編集可能です。
サイジングコスト開く
ドキュメント
Multigaming
Multigamingログイン不要
ポート一覧から、ゲームサーバー用のufw・iptables・nftables・Windows netshルールを生成します。
ファイアウォールセキュリティ開く
ドキュメント
Multigaming
Multigaming要ログイン
2つの設定ファイル(INI、CFG、JSON)を行単位・キー単位で比較。処理はブラウザー内で完結します。
差分設定開く
ドキュメント
Multigaming
Multigaming要ログイン
保持期間、サービス停止、cron行つきのbash/PowerShellバックアップスクリプト(tar、7z、rsync/robocopy)を生成します。
バックアップスクリプト開く
ドキュメント