ゲーミング文鎮をUbuntuでホームサーバー化しよう

要約
半年放置のゲーミングPC(i7-13700/RTX4070Ti)をUbuntu Serverでホームサーバー化。Docker・Tailscale・GPU対応まで構築した手順と、インストーラのDHCP問題・MOK登録10秒制限など詰まりポイントをまとめました。
意見はこのエリアに表示されます
アイキャッチ画像

颯太です。

VALORANTに人生を賭けて購入したゲーミングPCが半年間放置されていたので、Ubuntu Server 26.04 LTSでホームサーバーにしました。経緯はnoteに書いたので、この記事では構築手順と詰まったポイントを書きます。

もし文鎮化しているゲーミングPCなどあれば参考にしてください。

構築したもの:

  • Ubuntu Server 26.04 LTS
  • SSH鍵認証
  • Docker + NVIDIA Container Toolkit(GPU対応)
  • Portainer
  • Tailscale
  • BIOSファンカーブ + GPU電力制限による静音化

環境

項目内容
CPUIntel Core i7-13700
GPUNVIDIA RTX 4070 Ti(VRAM 12GB、Ada Lovelace世代)
メモリ32GB DDR5-4800
ストレージNVMe SSD 1TB
マザボMSI Z790系(M.2×2、SATAポート×4)
NICRealtek RTL8125BG(2.5Gbps)
OSUbuntu Server 26.04 LTS

Ubuntu Server インストール

詰まり①: インストーラのDHCPv4欄が空のまま

ネットワーク設定の画面でIPアドレスが表示されない場合があります。Ctrl+Alt+F2 でシェルに切り替えて確認してください。

IPが取れていればそのままインストールを続行できます。インストーラに戻るには Ctrl+Alt+F1

ネットで調べると dhclient を案内している記事が多いですが、Ubuntu 26.04のインストーラ環境(busybox)では使用できません。dhclient: not found になります。

インストーラの選択項目

Featured Server Snapsは何も選択しないのが重要です。DockerのSnap版は公式版と挙動が異なる場合があるので、後でaptから公式版を入れます。

項目選択内容
Featured Server Snaps何も選択しない
SSH SetupInstall OpenSSH serverをチェック
Ubuntu Proスキップ可(後からコマンドで有効化できる)

SSH鍵認証化

鍵認証で接続できることを確認してから、パスワード認証を無効化します。

必ず別ターミナルで鍵認証の接続テストをしてから元のセッションを切ること。 締め出された場合はモニター・キーボード直結でのローカルログインでしか復旧できません。

パスフレーズを毎回入力しないようにする(Mac)

~/.ssh/config に以下を追記します。

初回のみパスフレーズを入力するとmacOSキーチェーンに保存され、以降は ssh homeserver だけで接続できます。

VSCode Remote SSH

ファイル編集にはVSCode拡張「Remote - SSH」が便利です。~/.ssh/config をそのまま読み込むので追加設定は不要です。

macOSの場合はローカルネットワークアクセスの許可が必要です(システム設定 → プライバシーとセキュリティ → ローカルネットワーク)。これを知らずに詰まりました。

Docker + Portainer

Dockerインストール

Ubuntu標準リポジトリ版は古いため公式スクリプトを使います。

ディレクトリ構成

Git管理を前提に全サービスを1リポジトリにまとめる構成が管理しやすいです。

子ディレクトリで git init はしないでください。親リポジトリから追跡されなくなります。

Portainer

詰まり②: PortainerにHTTPでアクセスした

アクセスは https://<IP>:9443 です。http:// で叩くと以下のエラーになります。

自己署名証明書の警告はLAN内利用のため無視で問題ありません。

NVIDIAドライバ + NVIDIA Container Toolkit

ドライバの種類

ubuntu-drivers devices で3種類が表示されます。

種別説明
無印(proprietary)クローズドソース版
-openオープンソース版、Turing以降でNVIDIA公式推奨
-serverデータセンター向け、コンシューマGPUには非推奨

RTX 4070 Ti(Ada Lovelace世代)では -open を選択します。

詰まり③: Secure BootとMOK登録の10秒

Secure Bootを有効のままにしていると、ドライバインストール後の再起動時に青いMOK管理画面が出ます。この画面は10秒しか表示されません。 時間内に操作しないとドライバが動かず、再設定が必要になります。

  1. Enroll MOK を選択
  2. Continue
  3. Yes
  4. インストール中に設定したパスワードを入力
  5. 再起動

見逃した場合は sudo dpkg-reconfigure nvidia-driver-595-open で再設定できます。

NVIDIA Container Toolkit

nvidia-ctk runtime configure 実行時に "It is recommended that docker daemon be restarted." と出ますが正常です。

動作確認

2台目以降のGPU情報が N/A になっているのはGPUが1枚のみのため正常です。

Tailscale

実行するディレクトリはどこでも問題ありません。

必須: Expire keyの無効化

Tailscale Admin Console で全デバイスの「Disable key expiry」を設定してください。デフォルト180日で再認証が必要になり、設定しないと突然外部アクセスが切れます。

MagicDNS

Settings → DNS → Enable MagicDNSを有効にするとデバイス名でアクセスできます。

外出先からの動作確認

  • MacのWi-Fiをオフにしてモバイルホットスポット経由でSSH接続する
  • スマホにTermius(無料)をインストールしてSSH接続する
  • TailscaleアプリのMachines一覧でサーバーが「Connected」になっていることを確認する

静音チューニング

詰まり④: GPU電力制限してもファンが静かにならない

GPU電力制限(nvidia-smi -pl)はアイドル時のファン音には影響しません。電力制限はピーク時の上限値なので、何もしていないアイドル状態では上限に到達せず無意味です。

アイドル時のファン音はBIOSのファンカーブで制御します。

BIOSファンカーブ設定

i7-13700はアイドル時CPU温度が30℃未満でした。この温度に対してデフォルトのカーブが過剰なため、ファンが無駄に回っていた状態です。

温度Duty Cycle
40℃以下20%
55℃40%
70℃60%
85℃100%

アイドル時2000〜2500RPM → 700〜800RPMになりました。

GPU電力制限の永続化

RTX 4070 TiのデフォルトTDP 285Wを200Wに制限します。AI処理以外では性能差はほぼなく、発熱と電気代が下がります。systemdサービスにすることで再起動後も設定が維持されます。

AI処理時に一時解除する場合:

動作確認チェックリスト

  • 再起動後、自動でログインプロンプトまで到達する
  • SSHパスワード認証では接続できない
  • 鍵認証でSSH接続できる
  • docker run --rm hello-world が成功する
  • docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi が成功する
  • Portainerに https://<IP>:9443 でアクセスできる
  • Tailscale経由でSSH接続できる
  • 外出先(モバイル回線)からTailscale経由で接続できる
  • GPU電力制限200Wが再起動後も維持されている
  • アイドル時騒音が許容レベルに収まっている
Explore More
関連記事はありません。