このガイドでは、Valheim の専用サーバーを Windows、Linux、macOS でダウンロード、設定、起動する方法を解説します。
専用サーバーを使えば、誰もログインしていなくても動き続ける永続的なワールドを持てます。これは多くのグループが最初に採用するホスト・アンド・プレイ方式からの大きな進歩です。Valheimのサーバーは無料で、ゲーム本体をもう一本用意する必要もなく、実際のところ立ち上げやすい部類に入ります。
ここではバニラのセットアップを扱います。その上にMODを導入したい場合は、Valheim MODガイドでクライアント側だけでなく、サーバー側のBepInExについても解説しています。
Requirements
- Windows 10 以降、または最新の Linux ディストリビューションが動作するマシン。Macが特殊な扱いとなる理由についてはmacOSセクションを参照してください。
- 少人数のグループなら最低 4 GB のRAM。Valheimのサーバーはワールドが探索・建築されるにつれてメモリ使用量が増えていくため、10人規模のグループなら8 GBを目安にする方が安全です。
- サーバーファイル用に 2 - 3 GB 程度のディスク容量に加え、ワールドセーブとバックアップ用の空き容量。
- Steamアカウント。専用サーバーは無料のツールなので、Valheimを所有している必要はありません。
- ターミナルの操作とテキストファイルの編集に多少慣れていること。
TIP - どのゲームサーバーでも同じですが、メインユーザーやrootではなく、専用のユーザーアカウントで実行してください。コストはかからず、万が一何か問題が起きた際の被害を抑えられます。
Steam Backend Or Crossplay Backend
ルーターを触る必要があるかどうかが変わってくるので、これは始める前に決めておきましょう。
Steamバックエンドがデフォルトです。サーバーはクライアントと直接通信するため、ポート開放が必要で、参加や表示ができるのはSteamプレイヤーのみです。
-crossplay で有効化するCrossplayバックエンドは、通信をPlayFabのリレー経由でルーティングします。ポート開放は不要で、XboxやMicrosoft Store版を含む、あらゆるプラットフォームのプレイヤーが参加できます。
Crossplayは一見明らかに得なように聞こえますし、特にルーターを自分で制御できない場合は実際にそうです。トレードオフとしては、通信が直接ではなくリレー経由になるためレイテンシが増える可能性があること、そしてローカルIPやループバックIP経由ではCrossplayサーバーに接続できないことが挙げられます。接続にはパブリックIPとポート、参加コード、またはサーバーリストを使います。
NOTE - MODを使用している場合は、XboxやMicrosoft StoreのクライアントはBepInExを読み込めないことに注意してください。MOD入りサーバーでCrossplayを有効にすると、そうしたプレイヤーはサーバーを見つけられても、必ずしもプレイできるわけではありません。
Downloading The Server Files
Valheimの専用サーバーはSteamアプリ 896660 で、無料です。
Through The Steam Client
マシンにデスクトップ環境付きのSteamが入っているなら、これが最も簡単な方法です。
- Steamのライブラリを開きます。
- 左上のドロップダウンをクリックし、ツールのチェックボックスがオンになっていることを確認します。
- 一覧からValheim Dedicated Serverを見つけ、インストールをクリックします。
- 完了したら右クリックして管理、続いてローカルファイルを閲覧を選び、インストールフォルダを開きます。
Through SteamCMD
ヘッドレスなマシンに対して正しいアプローチであり、Linuxサーバーで使うべき方法です。
SteamCMD自体について解説した別のガイドがあります。
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/
SteamCMDをインストールしたら、コマンドは以下の通りです。
login anonymous
force_install_dir /path/to/valheim-server
app_update 896660 validate
quit
あるいは、スクリプトやcronジョブに組み込める1行版としては以下の通りです。
./steamcmd.sh +login anonymous +force_install_dir /home/valheim/server +app_update 896660 validate +quit
ここでは匿名ログインが使えるため、認証情報は不要です。サーバーを更新したいときは同じコマンドを再実行してください。Valheimのパッチが出るたびにこれが必要になります。古いビルドのサーバーにはクライアントが接続を拒否するためです。
Linux Prerequisites
Linuxサーバーはライブラリ要件のほとんどをSteamクライアントと共有しており、それに加えて追加のものがいくつかあります。
DebianおよびUbuntu
sudo apt update
sudo apt install -y libatomic1 libpulse-dev libpulse0 screen
Fedora、RHEL、Rocky
sudo dnf install -y libatomic pulseaudio-libs pulseaudio-libs-devel screen
サーバーにはさらにGLIBC 2.29とGLIBCXX 3.4.26以上が必要です。現行のディストリビューションであればこれらは満たされています。CentOS 7のようなそれより古いものを使っている場合は、glibcを手動でアップグレードしようとするのではなく、Dockerを使うのが推奨される対処法です。
Launch Arguments
サーバーの設定は、コンフィグファイルではなく起動引数を通してすべて行います。重要なものは以下の通りです。
| Argument | Default | Description |
|---|---|---|
-name "My server" |
N/A | サーバーリストに表示されるサーバー名。 |
-port 2456 |
2456 |
UDPポート。Valheimはこのポートとその1つ上のポートを使うため、2456を指定すると2456と2457の両方になります。 |
-world "Dedicated" |
N/A | 読み込むワールド。存在しなければ作成し、同名の既存ワールドがあればそれを読み込みます。 |
-password "Secret" |
N/A | 参加用パスワード。 |
-public 1 |
1 |
1ならサーバーを公開リストに載せます。0なら非表示にし、プレイヤーはIPで参加することになります。LANに向いています。 |
-crossplay |
off | SteamではなくPlayFabのクロスプレイバックエンドを使用します。ポート転送は不要です。 |
-savedir [PATH] |
see below | ワールドと権限ファイルの保存先を上書きします。 |
-logFile "/path/log.txt" |
N/A | ログの書き込み先。 |
-saveinterval 1800 |
1800 |
ワールドを保存する間隔(秒)。デフォルトは30分。 |
-backups 4 |
4 |
保持する自動バックアップの数。 |
-backupshort 7200 |
7200 |
最初の自動バックアップまでの間隔(秒)。 |
-backuplong 43200 |
43200 |
それ以降のバックアップの間隔(秒)。 |
-instanceid "1" |
N/A | 同じMACアドレスから同じポートで複数のサーバーを動かす場合にのみ必要で、それぞれに固有のPlayFab IDを持たせます。 |
上書きしない場合のデフォルトの保存先パス:
- Windows:
%USERPROFILE%\AppData\LocalLow\IronGate\Valheim - Linux:
~/.config/unity3d/IronGate/Valheim
警告 - パスワードは空にできず、サーバー名やワールド名の部分文字列にもできません。該当する場合サーバーは起動を拒否しますが、そのエラーメッセージはログの中で見落としやすいものです。
World Modifiers
ワールドの難易度やルールもコマンドラインから設定できます。ゲーム内のスライダーで全員が合意する必要がなくなるので、サーバー運用には便利です。
-presetはすべてを一度に設定します。有効な値はNormal、Casual、Easy、Hard、Hardcore、Immersive、Hammerです。
-modifier <name> <value>は1つずつ設定するもので、プリセットと併用する場合はプリセットの後に指定してください。プリセットはそれ以前の設定を上書きするためです。
| Modifier | Values |
|---|---|
combat |
veryeasy, easy, hard, veryhard |
deathpenalty |
casual, veryeasy, easy, hard, hardcore |
resources |
muchless, less, more, muchmore, most |
raids |
none, muchless, less, more, muchmore |
portals |
casual, hard, veryhard |
-setkey <name>はチェックボックス形式のキーを切り替えます:nobuildcost、playerevents、passivemobs、nomap。
例えば、襲撃なし・資源豊富なサーバーの場合:
-preset normal -modifier raids none -modifier resources more
Starting The Server On Windows
サーバーにはインストールフォルダ内に start_headless_server.bat が同梱されています。
**コピーを作成してから、そのコピーを編集してください。**Steamはサーバーが更新されるたびにオリジナルをリセットするため、設定が消えてしまいます。1つ注意点として、Steamライブラリのショートカットはオリジナルのファイル名しか指していないため、コピーはSteam経由ではなく直接起動する必要があります。
- サーバーのインストールフォルダを開く。
start_headless_server.batをstart_myserver.batのような名前でコピーする。- コピーを右クリックして編集を選択する。
start valheim_serverで始まる行を見つけ、そこに引数を設定する。
完成した行は次のようになります:
start valheim_server -nographics -batchmode -name "My Valheim Server" -port 2456 -world "Dedicated" -password "secret123" -public 1 -crossplay
- 保存してから、バッチファイルをダブルクリックします。
- Windowsファイアウォールのプロンプトが出たら、サーバーがインターネットと通信できるよう、すべてのボックスにチェックを入れてください。
コンソールに次のように表示されれば起動完了です:
Game server connected
Starting The Server On Linux
Linux版に相当するのは start_server.sh です。Windowsのときと同じ理由で、まずコピーを作ってください。
cd /home/valheim/server
cp start_server.sh start_myserver.sh
chmod u+x start_myserver.sh
nano start_myserver.sh
./valheim_server.x86_64の行に引数を設定します:
#!/bin/bash
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
./valheim_server.x86_64 \
-nographics \
-batchmode \
-name "My Valheim Server" \
-port 2456 \
-world "Dedicated" \
-password "secret123" \
-public 1 \
-crossplay
export LD_LIBRARY_PATH=$templdpath
SteamAppId=892970の行に注目してください。これはサーバーではなくゲーム本体のアプリIDです。標準のスクリプトに既に含まれており、そのまま残しておく必要があります。
次のコマンドで実行します:
./start_myserver.sh
Running It With Screen
SSHセッションのフォアグラウンドでサーバーを実行すると、接続を切った瞬間に落ちてしまいます。screen を使えばこれを回避できます。
screen -S valheim ./start_myserver.sh
CTRL + Aの後にDでデタッチします。再アタッチは次の通りです:
screen -r valheim
セッション一覧はscreen -lsで確認できます。
Running It As A systemd Service
本当に大事に運用したいなら、screenセッションよりsystemdユニットの方が優れています。起動時に自動的に立ち上がり、クラッシュ時には再起動します。
/etc/systemd/system/valheim.serviceを作成します:
[Unit]
Description=Valheim Dedicated Server
After=network.target
[Service]
Type=simple
User=valheim
WorkingDirectory=/home/valheim/server
ExecStart=/home/valheim/server/start_myserver.sh
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
それから有効化して起動します:
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
KillSignal=SIGINTは重要です。Valheimはワールドを正常に保存してシャットダウンするためにCTRL + C相当の信号を必要とし、TimeoutStopSec=120はそれを完了させるための猶予時間です。ここを誤ると進行状況を失う原因になります。
systemctl status valheimで状態を確認し、journalctl -u valheim -fでログを追えます。
Running Via Docker
専用サーバーにはGLIBC 2.29とGLIBCXX 3.4.26が必要です。お使いのディストリビューションがそれより古い場合、Dockerが公式に推奨されるルートであり、サーバーにもそのためのスクリプトが同梱されています。
- お使いのディストリビューション向けのインストール手順に従ってDockerをインストールします。
- デーモンが起動していること、そしてユーザーが
dockerグループに属していることを確認してください。以下がエラーなく実行できれば問題ありません:
docker ps
- 同梱のスクリプトを実行し、起動用スクリプトを引数として渡します:
./docker_start_server.sh start_myserver.sh
初回実行時はコンテナのブートストラップが行われ、数分かかります。以降の実行はすぐに起動します。
ゲームデータは docker_start_server.sh 内の DOCKER_DATA_VOLUME で指定された名前のDockerボリュームに保存され、デフォルトでは valheim_server_data になります。代わりにファイルシステム上にデータを保持したい場合は、パスに変更してください:
DOCKER_DATA_VOLUME="${HOME}/valheim_storage"
スクリプトを実行する前にそのディレクトリを作成しておいてください。ワールドデータ、adminlist.txt、bannedlist.txt、permittedlist.txt はすべてそこに保存されます。サーバーの停止方法は直接実行する場合と同じです。
macOS
ValheimにはネイティブのmacOSクライアントはありますが、専用サーバーのmacOSビルドは存在しません。SteamはWindowsとLinux向けにのみ配布しています。
Macからホストしたい場合、現実的な選択肢は以下の通りです:
- VM上でLinuxを動かし、上記のLinuxの手順に従う。
- コミュニティ製のValheimサーバーイメージを使ってDocker Desktop for Macを利用する。
- LinuxマシンやレンタルVPS上でサーバーをホストし、Macからはプレイのみ行う。
Macプレイヤーはもちろんどこにホストされたサーバーにも参加できますし、Macクライアントのモッディングはmodガイドで取り上げているRosetta回避策で動作します。
Port Forwarding
-crossplay を使用している場合、このセクションは丸ごとスキップして構いません。
Steamバックエンドの場合、以下をルーターでサーバーを実行しているマシンに転送してください:
| Protocol | Port | Purpose |
|---|---|---|
| UDP | 2456 | ゲームポート |
| UDP | 2457 | ゲームポート+1、自動的に使用されます |
-port を変更した場合は、指定したポートとその一つ上のポートを転送してください。
OSのファイアウォールでも許可が必要な場合があります:
# Debian/Ubuntu with ufw
sudo ufw allow 2456:2457/udp
# Fedora/RHEL with firewalld
sudo firewall-cmd --permanent --add-port=2456-2457/udp
sudo firewall-cmd --reload
Windowsでは、初回起動時のファイアウォールプロンプトですべてのチェックボックスにチェックを入れれば対応できます。
TIP - 各サーバーがそれぞれ専用のポートペアを持つ限り、1台のマシンで複数のサーバーを動かしても問題なく動作します。2456/2457、2458/2459というように使い、それぞれに -instanceid を割り当ててください。
Admins, Bans And The Permitted List
保存ディレクトリ内の3つのテキストファイルがアクセスを制御しており、それぞれ1行に1つのプラットフォームユーザーIDを記載します:
adminlist.txt- 管理者権限を持つユーザー。bannedlist.txt- Banされたユーザー。permittedlist.txt- 許可リスト。
WARNING - permittedlist.txt に誰かを追加すると、そこに記載されていない全員がBanされます。これは仕様であり、意外と知られていません。特定のクローズドサーバーにしたいのでない限り、空のままにしておいてください。
Platform User IDは [Platform]_[User ID] の形式で、大文字小文字が区別されます。サーバーログから読み取るか、ゲーム内のF2パネルから確認できます。
ゲーム内では、管理者はF5でコンソールを開き、以下が使用できます:
| Command | Effect |
|---|---|
kick PLAYERNAME |
プレイヤーをキックします。 |
ban PLAYERNAME |
プレイヤーをBANします。 |
unban PLAYERNAME |
BANを解除します。 |
banned |
BAN済みの全員を一覧表示します。 |
Saves And Backups
サーバーは -saveinterval 秒ごと(デフォルトは30分)にワールドを保存し、-backups 件の自動バックアップを保持します。
デフォルトのままだと、約2時間前のバックアップが1つと、そこから12時間おきのものが3つ得られます。アクティブなサーバーにとってはこれでは心もとないため、以下のような設定の方がより良い出発点になります:
-saveinterval 900 -backups 8 -backupshort 3600 -backuplong 21600
これにより15分ごとに保存され、8つのバックアップが保持されます。最初のものは1時間前、残りは6時間おきになります。
自動バックアップはセーブディレクトリ内のワールドファイルと同じ場所に保存されます。バックアップ対象と同じディスク上にあるため、ワールドが大切なら定期的に別の場所へコピーしておいてください。rsync を使ったcronジョブで十分です。
Stopping The Server Properly
サーバーのコンソールで CTRL + C を押してください。
ウィンドウをXボタンで閉じないでください。Iron Gate自身のドキュメントもこの点については率直に、サーバーがバックグラウンドで動き続ける可能性があり、彼ら自身もよくわかっていないと述べています。いずれにせよ、最後の保存以降のデータを失うリスクがあります。
systemd配下では、上記のように KillSignal=SIGINT を設定していれば、systemctl stop valheim はSIGINTを送信するので同じことになります。
Troubleshooting
サーバーが起動してすぐに終了してしまう。 10回中9回はパスワードのルールが原因です。パスワードは空にできず、サーバー名やワールド名の中に含まれていてもいけません。
誰もサーバーをリストで見つけられない。 公開リストへの反映には数分かかることがあり、そもそもあまり信頼性がありません。まずは誰かにJoin IPでIP経由の参加を試してもらい、サーバー自体に到達できるか確認してから、リスト表示について気にしてください。
プレイヤーがバージョン不一致になる。 サーバーがクライアントと異なるビルドになっています。SteamCMDでのアップデートを再実行するか、Steamクライアント経由で更新してください。
Steamバックエンドで接続拒否またはタイムアウトが発生する。 ポート開放の問題です。両方のUDPポートが正しい内部IPに転送され、OSファイアウォールでも許可されているか確認してください。
クロスプレイサーバーがLAN内から到達できない。 これは想定通りです。クロスプレイサーバーにはローカルIPやループバックIP経由では到達できません。パブリックIP、join code、またはサーバーリストを使用してください。
Linuxでライブラリ不足のエラーが出る。 libatomic1、libpulse0、libpulse-dev をインストールしてください。エラーがGLIBCやGLIBCXXのバージョンに言及している場合、ディストリビューションが古すぎるので、Dockerが解決策になります。
メモリ使用量が上がり続ける。 ワールドが探索・建築されるにつれて起こる正常な現象です。定期的にサーバーを再起動するのは、よくある妥当な対処法です。
クラッシュ後にワールドが巻き戻ってしまった。 最後の保存以降のデータを失っています。-saveinterval を短くし、必ず CTRL + C で終了するようにしてください。
Conclusion
Valheimサーバーは比較的親切な部類のセットアップです。SteamCMDでアプリ 896660 を取得し、起動スクリプトをコピーして、名前・ポート・ワールド・パスワードをコマンドラインに書き込み、実行するだけです。
事前に検討しておくべき2つの判断は、クロスプレイかSteamバックエンドか(これによりルーターを触る必要があるかどうかが決まります)と、バックアップ設定(デフォルトはほとんどのグループが望むよりも手薄です)です。
後からMODを追加する予定がある場合は、Valheim MODガイドでstart_server_bepinex.shや、クライアントだけでなくサーバー側にも必要なMODについて解説しています。
関連情報
- Valheim公式デディケートサーバーガイド - Iron Gate自身によるドキュメントで、上記の引数一覧の出典です。
- Valheim Crossplay FAQ
- SteamCMDドキュメント
- Valheim Modding Discord
- Valheim Modding Wiki
- TMC App - サーバーブラウザ、リアルタイムのレイテンシグラフ、RCONを備えた私たち自身のアプリです。Valheimのmod管理にも対応しており、その詳細はValheim modガイドで扱っています。GPL-3.0の下でオープンソース化されており、まだ非常に初期の開発段階にあるため、試してみたりフィードバックを残していただけると本当に助かります。
このガイドはできる限り最新の状態を保つよう努めていますが、Valheimとそのサーバーツール群は時間とともに変化します。ここに書かれている手順が実際の挙動と合わなくなっている場合は、報告いただくか、このガイドのGitHubリポジトリでプルリクエストを開いてください。
サーバーやMOD関連で質問がある方、助けが必要な方は、私たちのDiscordサーバーにぜひご参加ください!

