鯖ドリル

※本記事にはアフィリエイト広告(PR)が含まれています

Valheim

【月0円】Valheim専用サーバーをOracle Cloud無料枠に立てる|ARM+box64で完全無料の24時間サーバー

Oracle CloudのAlways Free対象枠(Ampere A1)にValheim専用サーバーを立てる手順。ARM上でx86ゲームを動かすbox64の実戦ノウハウと、SteamCMDを使わないDepotDownloader方式を、実際にハマった失敗とともに解説します。

#Oracle Cloud#無料#ARM#box64#Ubuntu#マルチプレイ#専用サーバー
目次

「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時の課金実測は、観測期間が揃ってから別記事で公開します。

全体の流れ

  1. box64をソースビルド(←apt版は使わない)
  2. DepotDownloaderでValheimサーバー取得(←SteamCMDは使わない)
  3. 起動スクリプト作成(Steam専用構成)
  4. ファイアウォール開放(UDP 2456-2457)
  5. 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になりました

apt版box64(v0.2.6)でのSegfault。UnityPlayer.so読み込み失敗

最初からソースビルドを行います:

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参照):

  1. OCIセキュリティリスト: 「Default Security List」にイングレスルール追加 — ソース 0.0.0.0/0 / UDP / 宛先ポート 2456-2457
  2. サーバー内 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 connectedRegistering lobbyOpened Steam server
  • 確認: sudo ss -ulnp2456と2457の両方 がLISTENしていること

クライアント(Steam版Valheim)→ ゲーム参加 → サーバーを追加 → <パブリックIP>:2456 → 接続 → パスワード入力。

接続成功時のサーバーログ。New peer connectedが出ればOK

環境によってはログ上部に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側のターミナルで転送します。

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側のターミナルで実行します。

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統合版サーバー(BDS)も公開中です(BDSもbox64で動きます)。Core KeeperやPAYGの課金実測記事も順次公開します。


質問・つまずきポイントがあればお問い合わせフォームからどうぞ。実際にハマった範囲なら大体答えられます。