目次
- この記事で得られること
- 前提: Oracleのサーバーが手元にあること
- 全体の流れ
- Step 1. box64のインストール — apt版は使わない
- Ubuntu標準のbox64はValheim起動時に停止した
- Step 2. Valheimサーバーの取得 — SteamCMDも使わない
- ダウンロードしたファイルに実行権限がない
- Step 3. 起動スクリプト
- -public とサーバー一覧表示
- 注意ポイント: -crossplay 0 は「無効」の指定にならない
- Step 4. ポート開放(UDP 2456-2457)
- Step 5. 起動と接続確認
- お気に入り一覧で赤×になる場合
- Step 6. systemd常駐化(SSHを切っても動き続ける)
- Valheimサーバーをアップデートする
- 既存のワールドを持ち込む・バックアップする
- PCからサーバーへ持ち込む
- ローカルPCへバックアップする
- まとめ
- 関連記事
「Valheimの専用サーバーが欲しい。でも毎月お金を払い続けるのはちょっと……」
前回の記事ではKAGOYA CLOUD VPSに日額28円で立てる方法を紹介しましたが、今回はさらにその上——Always Free対象内なら月0円のValheimサーバーです。
使うのはOracle CloudのAlways Free枠(Ampere A1)。実際に私がゼロから構築して、フレンドと接続確認するところまでの全手順を書きます。
結論を先に言うと——
- 完全無料で常設サーバーが欲しい → Oracle Cloud A1 + box64 ←本記事(ただし癖が強い)
- 素直に安定・簡単がいい → KAGOYA CLOUD VPS(日額28円〜)
- コマンド一切書きたくない → ConoHa for GAME(テンプレあり)など
この記事で得られること
- ARMサーバーでx86ゲームを動かす box64 の実戦ノウハウ
- SteamCMDを使わずにValheimサーバーを取得するDepotDownloader方式
- 完成後の運用方法(systemd常駐化・自動復活・ログ確認)
前提: Oracleのサーバーが手元にあること
本記事は、SSH接続できるOracle A1インスタンス(2 OCPU / 12GB、Ubuntu 24.04)がある状態から始めます。
まだの人は、先にこちらをどうぞ → Oracle Cloud無料枠でゲームサーバー用インスタンスを作る全手順 アカウント登録・インスタンス作成・SSH接続・ポート開放の基本まで、この1本で整います。
なお、Oracle無料枠は2026年6月に半減されましたが、Valheimは縮小後の2 OCPU / 12GBでも問題なく動きます(実測: メモリ使用4GB前後)。PAYG時の課金実測は、観測期間が揃ってから別記事で公開します。
全体の流れ
- box64をソースビルド(←apt版は使わない)
- DepotDownloaderでValheimサーバー取得(←SteamCMDは使わない)
- 起動スクリプト作成(Steam専用構成)
- ファイアウォール開放(UDP 2456-2457)
- systemd常駐化
Step 1. box64のインストール — apt版は使わない
Valheimのサーバーバイナリはx86_64用で、ARMのA1ではそのまま動きません。x86→ARM変換を担うのがbox64です。SSHでインスタンスに接続して作業します。
ssh -i ~/.ssh/{{key}} ubuntu@{{ip}}
入力値は外部へ送信されません。保存ボタンを押した場合だけ、この2項目をブラウザに保存します。
キーを違うフォルダに作成している方は、キーファイルがある場所を指定して繋いでください。
Ubuntu標準のbox64はValheim起動時に停止した
Ubuntu 24.04は apt install box64 でbox64が入りますが、ValheimのUnityエンジン読み込みでSegmentation faultになりました

最初からソースビルドを行います:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential cmake python3 unzip wget dotnet-runtime-8.0
cd ~ && mkdir -p tools && cd tools
git clone https://github.com/ptitSeb/box64
cd box64 && mkdir build && cd build
cmake .. -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc) # 2 OCPUで10〜15分
sudo make install
box64 --version # 0.3.x になっていればOK
Step 2. Valheimサーバーの取得 — SteamCMDも使わない
SteamCMDは32bit x86バイナリで、ARMで動かすにはbox86環境まで必要になり泥沼です。代わりにDepotDownloader(.NET〈Microsoft製〉で作られており、ARM64でそのまま動く)を使います:
cd ~/tools
wget https://github.com/SteamRE/DepotDownloader/releases/latest/download/DepotDownloader-linux-arm64.zip
unzip DepotDownloader-linux-arm64.zip -d depotdownloader
chmod +x depotdownloader/DepotDownloader
./depotdownloader/DepotDownloader -app 896660 -dir ~/valheim-server
App ID 896660はValheim Dedicated Server。匿名ダウンロード可能なので、Steamアカウント情報は不要です。
ダウンロードしたファイルに実行権限がない
DepotDownloaderは実行ビットを付けません。忘れると is not an executable file で怒られます:
chmod +x ~/valheim-server/valheim_server.x86_64
Step 3. 起動スクリプト
サーバー設定を入力すると、下の起動スクリプトへ即時反映されます。パスワードは保存されず、ページを再読み込みすると空欄に戻ります。
cat > ~/valheim-server/start.sh << 'EOF'
#!/bin/bash
cd "$(dirname "$0")"
export LD_LIBRARY_PATH="./linux64:$LD_LIBRARY_PATH"
export SteamAppId=892970
exec box64 ./valheim_server.x86_64 \
-name "{{name}}" \
-port {{port}} \
-world "{{world}}" \
-password "{{password}}" \
-public {{public}}
EOF
chmod +x ~/valheim-server/start.sh
-public とサーバー一覧表示
| 指定 | お気に入り・サーバー一覧 | 接続方法 |
|---|---|---|
-public 1 | 公開され、正常ならバージョンと人数が表示される | 一覧またはIP指定 |
-public 0 | 非公開。一覧に出ない、または赤×になる | IPを直接指定 |
| 省略 | 既定値は 1 | -public 1と同じ |
注意ポイント: -crossplay 0 は「無効」の指定にならない
Steam版の参加者だけで遊ぶ場合、起動オプションに -crossplay は書きません。Valheim公式の専用サーバーガイドでは、-crossplay を付けるとPlayFabを使うクロスプレイ用バックエンドが有効になる仕様です。後ろに 0 を付けて無効化する書式は案内されていません。
XboxやMicrosoft Store版の参加者を招く場合は -crossplay が必要です。ただし、Oracle A1 + box64環境でのクロスプレイは本記事では未検証です。Steam専用構成をまず確実に動かし、クロスプレイは別途検証できた時点で追記します。
Step 4. ポート開放(UDP 2456-2457)
Valheimに必要なのは UDP 2456〜2457 です。Oracle環境ではクラウド側とOS側の2段構えで開けます(詳しい考え方はハブ記事のStep 7参照):
- OCIセキュリティリスト: 「Default Security List」にイングレスルール追加 — ソース
0.0.0.0/0/ UDP / 宛先ポート2456-2457 - サーバー内 iptables:
sudo iptables -I INPUT 1 -p udp --dport 2456:2457 -j ACCEPT
sudo netfilter-persistent save
Step 5. 起動と接続確認
~/valheim-server/start.sh
- 初回はワールド生成込みで10分前後かかります(box64のJIT翻訳が起動時に集中するため)
- 成功サイン:
Game server connected→Registering lobby→Opened Steam server - 確認:
sudo ss -ulnpで 2456と2457の両方 がLISTENしていること
クライアント(Steam版Valheim)→ ゲーム参加 → サーバーを追加 → <パブリックIP>:2456 → 接続 → パスワード入力。

環境によってはログ上部にbox64のライブラリ警告が出ます。本記事の実機でも表示されましたが、その後にNew peer connectedまで進み、Steam版クライアントから接続できています。判定は警告の有無ではなく、後続の接続ログで行ってください。
お気に入り一覧で赤×になる場合
起動スクリプトが -public 1 になっているか確認してください。-public 0(非公開)だと、お気に入りでは赤×表示になります(IPを直接指定すれば接続はできます)。緑+人数表示にしたいなら -public 1 にして再起動しましょう。
Step 6. systemd常駐化(SSHを切っても動き続ける)
sudo tee /etc/systemd/system/valheim.service << 'EOF'
[Unit]
Description=Valheim Dedicated Server (box64)
After=network.target
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/valheim-server/start.sh
Restart=on-failure
RestartSec=15
KillSignal=SIGINT
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
これで:
- OS起動と同時にサーバーが自動で立つ
- クラッシュしても15秒後に自動復活(box64は稀に落ちるのでこの保険が効く)
- 停止・再起動は
sudo systemctl stop/restart valheim(停止時は毎回セーブしてから終了)
運用コマンド:
sudo systemctl status valheim # 状態確認
sudo systemctl stop valheim # 停止
sudo systemctl restart valheim # 設定変更後の再起動
journalctl -u valheim -f # ログをリアルタイム監視(Ctrl+Cで戻る)
journalctl -u valheim --since today | grep -E "Got handshake|Closing socket" # 今日の入退室
Valheimサーバーをアップデートする
クライアントとサーバーのバージョンが違うと接続できません。Valheimのアップデート後に入れなくなった場合は、サーバーを止めてDepotDownloaderを再実行します。
sudo systemctl stop valheim
cd ~/tools
./depotdownloader/DepotDownloader -app 896660 -dir ~/valheim-server
chmod +x ~/valheim-server/valheim_server.x86_64
sudo systemctl start valheim
sudo systemctl status valheim
DepotDownloaderで更新すると実行ビットが外れるため、更新のたびにchmod +xを再実行します。ワールドデータは~/.config/unity3d/IronGate/Valheim/にあるため、この更新では消えません。
既存のワールドを持ち込む・バックアップする
Oracleでもワールドの保存先はKAGOYAと同じです。Step 1の「キーファイル名」「パブリックIP」と、Step 3の「ワールド名」を入力すると、以下の転送コマンドへ自動反映されます。保存ボタンを押さなくても同じページ内では反映され、再読み込み後も残したい場合だけ保存してください。
PCからサーバーへ持ち込む
まずサーバーへSSH接続したターミナルでValheimを止め、保存先を確認します。起動したままファイルを上書きすると、終了時の自動保存で戻ることがあります。
sudo systemctl stop valheim
mkdir -p ~/.config/unity3d/IronGate/Valheim/worlds_local
ls -lah ~/.config/unity3d/IronGate/Valheim/worlds_local
次に、自分のPC側のターミナルで転送します。
ここで変更した値も、上のOracle設定とバックアップ欄へ同期されます。
Windows(PowerShell):
cd ~\AppData\LocalLow\IronGate\Valheim\worlds_local
scp -i ~/.ssh/{{key}} ".\{{world}}.db" ".\{{world}}.fwl" ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/
Mac:
cd ~/Library/Application\ Support/IronGate/Valheim/worlds_local
scp -i ~/.ssh/{{key}} "{{world}}.db" "{{world}}.fwl" ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/
サーバー側で.dbと.fwlの2ファイルが届いたことを確認し、start.shの-worldが同じワールド名になっていることを確認してから起動します。名前が違うと、新規ワールドが生成されます。
ls -lah ~/.config/unity3d/IronGate/Valheim/worlds_local
sudo systemctl start valheim
sudo systemctl status valheim
ローカルPCへバックアップする
バックアップ時も、まずサーバー側で停止します。
sudo systemctl stop valheim
次に、自分のPC側のターミナルで実行します。
ここで変更した値も、上のOracle設定とワールド転送欄へ同期されます。
Windows(PowerShell):
$backupDir = "$HOME\Downloads\valheim-backup-$(Get-Date -Format yyyyMMdd-HHmmss)"
New-Item -ItemType Directory -Force $backupDir
scp -i ~/.ssh/{{key}} "ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/{{world}}.db" "ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/{{world}}.fwl" $backupDir
Get-ChildItem $backupDir
Mac:
backup_dir="$HOME/Downloads/valheim-backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$backup_dir"
scp -i ~/.ssh/{{key}} "ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/{{world}}.db" "ubuntu@{{ip}}:/home/ubuntu/.config/unity3d/IronGate/Valheim/worlds_local/{{world}}.fwl" "$backup_dir/"
ls -lah "$backup_dir"
作成されたバックアップフォルダ内に、同じワールド名の.dbと.fwlがあることを確認したら、サーバーを再開します。
sudo systemctl start valheim
まとめ
| Oracle A1無料枠(本記事) | KAGOYA CLOUD VPS | |
|---|---|---|
| 料金 | Always Free対象内なら月0円 | 日額28円〜 |
| 構築難度 | 高(box64を利用) | 低(x86ネイティブ) |
| 起動時間 | 初回10分前後(2回目からは短縮) | 1〜2分 |
| 安定性 | 常用レベル(自動復活可能) | 高 |
| 向いてる人 | 常設無料サーバーが欲しい・トラブルを楽しめる | 手堅く早く立てたい |
正直、KAGOYAでの構築より3倍くらい大変でした。でもAlways Free対象内に収まれば、24時間動き続けるValheimサーバーが月0円。この記事と(+ハブ記事のOracle側の罠)で、楽に構築できるはずです。
「やっぱり素直な方がいい」と思った方はKAGOYA編へどうぞ。
関連記事
- Oracle無料枠でインスタンスを作る全手順(ハブ記事) — 本記事の前提部分
- ネイティブで一番ラクなのは実は: Minecraft Java版サーバー(box64不要)
同じOracle無料枠で立てられるMinecraft統合版サーバー(BDS)も公開中です(BDSもbox64で動きます)。Core KeeperやPAYGの課金実測記事も順次公開します。
質問・つまずきポイントがあればお問い合わせフォームからどうぞ。実際にハマった範囲なら大体答えられます。