使ってないPCを自宅AIサーバーに|Ollama常駐とポート開放なしの外部アクセス
机の奥で眠ってる古いノートPCとか、使わなくなったデスクトップってないだろうか。あれを「24時間動く自分専用のサーバー」にすると、意外と生活が変わる。外出先のスマホから、いつでも自分のAIに聞けたり、家に置いたファイルにアクセスできたり。
結論 余ったPCやミニPCを常時稼働させ、Ollamaで手元のAIを動かし、Syncthingでファイルを同期、Tailscaleで外からアクセスする。肝は、ルーターの受信ポートを一切開けずに済むこと。省電力なミニPCなら電気代は年3000円ほど。
目次 / INDEX
何を作るのか
先に完成形を出しておく。作るのはこういう仕組みだ。
やることは、余ったPCをサーバーとしてつけっぱなしにして、その中で3つのソフトを動かすだけ。
- Ollama:手元でAI(ChatGPTのような対話AI)を動かす本体。
- Syncthing:ファイルを複数の機器で自動的にそろえる係。
- Tailscale:外出先からでも、このサーバーに安全につなぐための入口。
そして一番大事なのが、図の下に書いた「ルーターの受信ポートは開けない」という点。ここが今回の肝で、最後のTailscaleの章で詳しく説明する。まずはサーバーにする機械選びから。
どのマシンをサーバーにするか
ちなみに僕がサーバーにしたのは、昔ゲーミング用に自作したまま使わなくなっていたWindowsのデスクトップだ。最近は「NASを買ってAIを常時動かす」のが流行っているけど、NASは普通に高い。
だったら埃をかぶっていた自作PCをそのまま常時稼働マシンに転用すれば、追加投資ゼロで同じことができる。それが最初の動機だった。同じように「使ってないPCが1台ある」なら、それが一番の近道になる。
手持ちの余りPCがあればそれでいい。なければ買うことになる。表に出てくるN100は、省電力PC向けのIntel製CPU(さまざまな計算を順番にこなす中枢)だ。
新品で買うなら、いまは後継のN150を載せた機種が主流。表のGPUは、同じ種類の計算をまとめて並列にこなす部品のことだ。正直に比べるとこうなる。
| サーバーの候補 | 消費電力の目安 | 電気代の目安 | AIの速さ | 総評 |
|---|---|---|---|---|
| ミニPC(N100/N150など) | 6〜10W | 年約1,600〜2,700円 | 小さめのモデルなら実用 | 通販の実売で3.5万〜6万円(2026年8月)。静か・省電力だが、もう「安い」とは言えない |
| 使ってないノートPC | 15〜30W | 年約4,100〜8,100円 | CPU次第 | 0円で始められる。バッテリーが停電対策になるのが地味に強い |
| 古いデスクトップ | 40〜80W以上 | 年約1.1万〜2.2万円以上 | GPUを積めれば最速 | 電気代と騒音がネック。GPUがあるなら別格 |
| 古いMac mini(Apple Silicon) | 数W〜 | 安い | 速い | 省電力・静音・AIも速い三拍子。余ってるなら最有力 |
| NAS(ネットワークHDD) | 15〜30W | 安い | 実用不可レベル | ストレージは最強。AI実行には向かない |
電気代はざっくりこの式で出せる。
年間の電気代 ≈ 消費電力(W) ÷ 1000 × 24時間 × 365日 × 31円
例)10W なら 10 ÷ 1000 × 24 × 365 × 31 ≈ 2,700円/年ここで注意したいのは、「電気代が安いから新品のミニPCを買えばすぐ元が取れる」という話が、いまは成り立たないこと。以前はN100ミニPCが2万円前後という記事をよく見かけたが、2026年8月の時点では、この価格帯は変わっていた。
N100/N150搭載機はメモリ16GB構成でおおむね3.5万〜6万円で、2万円台の新品は見つからなかった。ただしこの価格帯のミニPCはクーポンやセールでの変動が大きいので、2026年8月時点の目安として読んでほしい。
この前提で回収年数を計算し直すとこうなる。
60Wの古いデスクトップ … 年 約16,300円
10WのミニPC … 年 約2,700円
電気代の差額 … 年 約13,600円
本体5万円なら 50,000 ÷ 13,600 ≈ 3.7年
本体6万円なら 60,000 ÷ 13,600 ≈ 4.4年つまり、電気代の差だけで本体代を回収するには4年前後かかる。本体が2万円だった頃なら1年半で元が取れたので「買った方が得」と言えたが、5万円台の今はそうは言えない。
だから結論はシンプルで、使っていないPCが1台でもあるなら、多少電気代がかかってもそれを使う方が圧倒的に有利だ。年1万円強の節約のために先に5万円払うのは、少なくとも金額の面では合理的ではない。
新品のミニPCを買う判断が合うのは、4年以上動かし続ける前提があって、なおかつ静かさ・省電力・置き場所の小ささそのものに価値を感じる人だ。古いデスクトップの「うるさい・熱い・埃を吸う」が寝室では致命的、という事情があるなら買う意味はある。逆に、単に節約したくて迷っているなら、まず手元の余りPCで始めて、この構成が生活に定着してから買い替えを考えれば十分だ。
NASはLLMを動かすマシンには向かない。CPUしか無いので、そこそこのモデルを動かすと1回の返事に数分かかって使い物にならない。NASを持ってるなら、AIモデル(1本で数GBある)や同期用のデータを置く「倉庫」として使って、AIの実行はミニPCやMac miniに任せる、という分担がいい。
倉庫用にNASを新しく買うなら、HDDが別売か込みかで総額が大きく変わるので、初心者向けのNASおすすめで本体とHDDを足した値段を見てから決めるといい。
24時間動かす設定:まず「寝させない」
サーバーは常時稼働が前提。ところがPCは、放っておくとスリープ(省電力のためにお休みする状態)に入る。寝てしまうと、外からアクセスしても反応しないので、まずこのスリープを止めるのが最初の設定になる。
モニタもキーボードも外して、電源だけつないで部屋の隅に置く、という使い方(これを「ヘッドレス」=頭無し、と言う)が基本だ。以下、OS別に「寝させない」コマンドを載せる。
Linux(Ubuntu Serverなど。古いPCをサーバーにするなら一番安定):
# スリープ・休止をまとめて無効化
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetノートPCをサーバーにするなら、「蓋を閉じても動き続ける」設定も入れる(/etc/systemd/logind.conf の HandleLidSwitch=ignore)。閉じて棚に置けるようになる。
macOS(Mac miniをサーバーにする場合):
sudo pmset -a sleep 0 # 本体を寝かせない
sudo pmset -a disksleep 0 # ディスクを止めない
sudo pmset -a autorestart 1 # 停電から復帰したら自動で起動さらに、システム設定 → エネルギーで「ディスプレイオフ時に自動でスリープしない」をオンにする。これがモニタ無し運用の決定打になる。
Windows(11)の場合:
# 管理者PowerShellで
powercfg /change standby-timeout-ac 0 # スリープしない
powercfg /hibernate off # 休止を無効化もうひとつ、停電のあと自動で電源が入る設定は、OSではなくBIOS/UEFI(PC起動時の一番下の設定画面)で行う。「Restore on AC Power Loss」を「Power On」にしておくと、停電で落ちても復電時に勝手に立ち上がる。これはOS側では設定できないので、サーバーにするなら一度BIOSに入って確認しておくといい。
サーバーの中でAIを動かす:Ollamaを常駐させる
ここからが本題。サーバーにOllamaを入れて、家の他の機器(スマホや別のPC)からも使えるようにする。
ひとつ注意点があって、Ollamaは初期設定だとサーバー自身からしか使えない。これは、待ち受けるアドレスが 127.0.0.1(自分自身、という意味の特別なアドレス)に固定されているから。他の機器から使うには、これを 0.0.0.0(全部の入口で受ける、という意味)に変えてあげる必要がある。
Linuxなら、Ollamaを常駐サービスとして動かしつつ、この設定を入れる。
curl -fsSL https://ollama.com/install.sh | sh # インストール
sudo systemctl edit ollama.serviceエディタが開くので、これを書いて保存する。
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"反映して、起動時に自動で動くようにする。
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl enable ollama # 電源を入れたら自動でOllamaが常駐する
ollama pull llama3.2:3b # まず軽い3Bのモデルからこれで、同じ家のネットワークにいる別の機器から、サーバーのAIを叩けるようになる(サーバーのIPアドレスが 192.168.1.50 なら、そこの 11434 番宛て)。
WindowsとMacで外部アクセスを許可する(OLLAMA_HOST)
WindowsとMacでも、やることは環境変数 OLLAMA_HOST に 0.0.0.0:11434 を入れてOllamaを再起動するだけだ。入れ方がOSで違う(2026年9月時点の公式FAQ)。
Windowsの場合:
- タスクバーのOllamaのアイコンから、Ollamaを終了する
- 設定かコントロールパネルで「環境変数」と検索し、「アカウントの環境変数を編集」を開く
- 変数名
OLLAMA_HOST、値0.0.0.0:11434を作ってOKを押す - Ollamaを起動し直す
Macの場合:
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"打ったあと、Ollamaのアプリを終了して起動し直す。launchctl setenv の設定はMacを再起動すると消えるので、再起動したら打ち直すか、ログイン時に自動で実行されるようにしておく。
⚠️ ログイン前から動かしたいWindowsサーバーでは、通常のアプリ版では足りないことがある。公式ドキュメントは、単体版の ollama-windows-amd64.zip を使い、NSSMなどで ollama serve をサービスとして登録する方法を案内している。
モデルを読み込んだままにする(OLLAMA_KEEP_ALIVE)
Ollamaは、使い終わったモデルを既定で5分後にメモリから降ろす。次に話しかけたとき読み込み直しになり、最初の返事だけ待たされる。
常に待たせたくないなら、環境変数 OLLAMA_KEEP_ALIVE に -1(ずっと読み込んだまま)か、24h のような時間を入れる。そのぶんメモリを使い続けるので、メモリが少ないミニPCでは既定のままでいい。
つながらないときの確認
- 待ち受けアドレス:
OLLAMA_HOSTを入れたあと、Ollamaを再起動したか。再起動しないと127.0.0.1のまま - ログ:Linuxは
journalctl -e -u ollama、Windowsは%LOCALAPPDATA%\Ollamaの中のserver.log - モデルの置き場所:既定ではMacが
~/.ollama/models、WindowsがC:\Users\ユーザー名\.ollama\models。容量の小さいSSDなら、環境変数OLLAMA_MODELSで別のドライブに移せる
スマホからChatGPT風に使う:Open WebUI
コマンドで叩くのは面倒なので、ブラウザからチャットできる画面(Open WebUI)を立てると一気に実用的になる。Dockerというコンテナの仕組みで動かすのが定番だ。
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://192.168.1.50:11434 \
-v open-webui:/app/backend/data \
-e WEBUI_SECRET_KEY=ここに秘密の文字列 \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:mainWEBUI_SECRET_KEY には、公式の手順どおり openssl rand -hex 32 で作った文字列を入れる。ログイン状態を守る鍵なので、他人に見せない。
あとは http://サーバーのIP:3000 をブラウザで開くだけ。初回にログインアカウントを作れば、家の中ならスマホからでもChatGPTみたいに使える。
どのくらいのスペックで何が動くか
正直な目安を書いておく。表の「3Bクラス」「8Bクラス」「27B以上」はAIモデルの大きさで、数字が大きいほど必要なメモリも増える(Bは10億の意味で、モデルの中の数値=パラメータの数を表す)。
VRAMは、GPUが持つ専用のメモリのことだ。ポイントは「モデルがメモリに収まらないと一気に遅くなる」こと。
| モデルの大きさ | 必要メモリの目安 | 速さの感覚 |
|---|---|---|
| 3Bクラス | 4GB〜 | N100ミニPCでも実用(軽い) |
| 8Bクラス | 8GB〜 | GPUなしだと少しもっさり、GPUありで快適 |
| 27B以上 | 16GB以上のVRAM | ハイエンドGPUが要る |
GPUのないミニPCなら、現実的には3B〜8Bまでが実用範囲。速さが欲しいならApple SiliconのMacかGPU付きPC、省電力・低予算なら3Bで割り切る、というのが正直な線引きだ。メモリがどれくらい要るかは、こっちの記事にもう少し詳しく書いた。
関連記事 大学生のローカルLLM|メモリは16GBで足りる?それとも32GB? ローカルでAIを動かすとき、メモリはどれくらい要るのかを実測でまとめた。 読む →ファイルを同期する:Syncthing
サーバーができたら、次はファイル同期。サーバーとノートPC、スマホの間で、同じフォルダを自動でそろえてくれるのがSyncthingだ。
なんでDropboxとかじゃなくてこれなのか。一番の違いは、Syncthingは機器同士が直接やり取りすること(これを「P2P」=ピアツーピアと言う。中央の業者のサーバーを経由しない、という意味)。
ここから来る利点が大きい。
- 無料で容量無制限:自分のディスクの空きが全て。月額もない。
- データを業者に預けない:クラウドのように第三者のサーバーに全ファイルが常駐しない。プライバシー的に安心。
- 同じ家の中なら爆速:LAN内で直接コピーするので速い。
この速さを活かすなら、サーバーはルーターに有線でつないでおきたい。ケーブルはLANケーブルのおすすめとカテゴリの違いを見れば、必要以上に高い規格を買わずに済む。
正直なデメリットも書くと、こう。
- 全部の機器がオンラインの時しか同期しない:だから常時稼働のサーバーを「中継ハブ」にすると、他の機器がバラバラのタイミングでも回るようになる。常時稼働のサーバーがここでも効いてくる。
- 同じファイルを2つの機器で同時に編集すると競合する:
~sync-conflict~みたいなファイルが生まれる。これは「バージョニング(履歴を残す設定)」を必ずオンにしておけば、巻き戻せるので事故らない。
導入は、各機器にSyncthingを入れて、機器ごとに割り振られる長いID(Device ID)を互いに登録し合い、共有したいフォルダを指定するだけ。難しくはない。
外から安全に使う:Tailscale(ここが核心)
最後に、外出先からこのサーバーを使えるようにする。ここが今回一番大事なところで、やり方を間違えると家中を危険に晒す。
昔ながらのやり方(ポート開放)は、なぜ危険か
「自宅のPCを外から使う」の昔ながらの方法は、ルーターで受信ポートを開けて、自宅を直接インターネットに向けて開放するやり方だった。これは「ポート開放(ポートフォワーディング)」と呼ばれる。
これがなぜ危険かというと、ポートを開けた瞬間から、世界中の自動プログラム(ボット)が24時間そのポートを叩いて侵入を試みるから。SSHの入口(22番)なんて開けた瞬間から総攻撃される。一度でも弱いパスワードや古い脆弱性があれば入られる。
家庭用ルーターを素人が管理して、常時開いた入口を持つのはリスクが高すぎる。だから、ポート開放はやらない。
Tailscaleは、なぜポートを開けずに外から入れるのか
Tailscaleは、この問題を根本から避ける仕組みだ。ざっくり言うと、自分の機器(サーバー・スマホ・ノート)を全部、「家の中にいるみたいに直接つながる、自分だけの私設ネットワーク」に入れてくれる。こういうのを「VPN」と言い、Tailscaleが作るこの網を「tailnet」と呼ぶ。
肝は、その繋がり方だ。ポート開放みたいに「外から入ってきてもらう」んじゃなくて、各機器がそれぞれ外に向かって接続を張って、中央の待ち合わせ役のところで出会う方式になっている。つまり全機器が「外向き」の接続だけで完結する。
だから、ルーターで受信ポートを開ける必要がゼロ。家をインターネットに晒さずに済む。しかも待ち合わせ役が扱うのは機器同士を引き合わせる部分だけで、通信の中身(ファイルやチャット)はそこを通らない。
導入は、サーバーに入れて認証するだけ。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# 表示されたURLをブラウザで開いてログインすれば完了スマホ側は、Tailscaleアプリを入れて同じアカウントでログインするだけ。これだけで、外出先の4G/5Gからでも、自宅のサーバーに直接つながる。管理画面で「MagicDNS」をオンにすると、覚えにくいアドレスの代わりに myserver みたいな名前で呼べるようになるので、これも入れておくと楽だ。
さらに固くするなら:Tailscale Serve
Ollamaを 0.0.0.0 に開かず、127.0.0.1 のまま外から使う方法もある。Tailscale Serveは、tailnet(Tailscaleでつないだ自分の機器のネットワーク)の中からの通信だけを、サーバー内のサービスへ中継する機能だ。
sudo tailscale serve 3000これでOpen WebUI(3000番)に、tailnetの機器からHTTPSでつながる。このコマンドは前面で動き、ターミナルを閉じると止まるので、常に動かすなら sudo tailscale serve --bg 3000 とする。
なお上のDockerコマンドはOpen WebUIを家のLANにも公開し、OllamaへはLANのIPでつなぐ構成だ。Ollamaを 127.0.0.1 に戻すなら、Open WebUI側の接続先も変える必要がある。利用にはTailscaleの管理画面でHTTPS証明書を有効にしておく必要がある。
⚠️ 似た名前のTailscale Funnelは、インターネット全体に公開する機能だ。Ollamaには認証が無いので、Funnelで公開してはいけない。
セキュリティで押さえること
- 受信ポートは絶対に開けない。外からのアクセスはTailscale経由だけにする。
- Ollamaにはパスワード認証が無い。
0.0.0.0で公開しても、それは「家の中とtailnetの中だけ」に留めること。インターネットに直接公開するのは絶対にダメ(誰でもAIを操作・悪用できてしまう)。 - SSH(サーバーに遠隔ログインする仕組み)はパスワードを無効にして鍵だけにする。
- 自動更新をオンに。OSもTailscaleもOllamaも、更新を止めると穴になる。
- 同期はバックアップではない。Syncthingで全機器がそろっていても、消したら全機器から消える。別のディスクに定期バックアップは別途とっておく。コピー先のディスクは、容量あたりの値段で選ぶなら大学生におすすめの外付けHDDが候補になる。
こういう人には向かない
正直に、向かない場合も書いておく。
- 管理の責任が全部自分に来る。クラウドと違って、落ちたら直すのは自分。旅行中にディスクが飛べば同期もアクセスも止まる。
- 古いPCは意外と高くつく:電気代・騒音・発熱。省電力機か新品ミニPCの方が結局は快適なことが多い。
- ローカルLLMはGPTほど賢くない:GPUなし機の小さいモデルは、ChatGPTの完全な代わりにはならない。用途は「要約・下書き・分類・外に出したくない作業」に割り切る。
- そもそもTailscale+クラウドAIで足りる人も多い:「自宅にサーバーを持つこと」自体が目的じゃないなら、無理にサーバーを持たない選択も正解だ。
まず最小構成でこう始める
いきなり全部やらず、この順番で1本道を通すのがいい。
- サーバーにするPCを1台用意(余ったPCか、N100系ミニPC)。OSを入れて、BIOSで「停電復帰時に自動起動」をオン。
- スリープを止める(上のOS別コマンド)。
- Tailscaleを入れる。スマホにもアプリを入れて同じアカウントでログイン、MagicDNSをオン。→ この時点で「外から安全に入れるサーバー」が完成する。
- Ollamaを入れて
OLLAMA_HOST=0.0.0.0で常駐、軽い3Bモデルを1つ入れる。 - Open WebUIを立てて、スマホのブラウザからチャット。→ 外出先からも自分専用AIが使える。
- 慣れたらSyncthingで同期を足したり、モデルを大きくしたり、NASを倉庫に足したりと、少しずつ広げる。
3〜4のあたりまで来れば、「省電力・ポート開放なし・外からAIが使える自分専用サーバー」が形になる。最初から完璧を目指さず、まずサーバーを1台寝させないところから始めるのがいい。
出典(公式ドキュメント・2026年9月27日時点)
- Ollama FAQ(OLLAMA_HOSTのOS別の設定、OLLAMA_KEEP_ALIVE、モデルの保存場所)
- Ollama Linux(インストール、自動起動、ログ)
- Ollama Windows(ログの場所、単体版をサービスとして動かす方法)
- Open WebUI Quick Start(Dockerの起動コマンドとWEBUI_SECRET_KEY)
- Tailscale Serve(tailnet内だけへの中継、HTTPS証明書、Funnelとの違い)
よくある質問
自宅サーバーを外から使うのにルーターのポート開放は必要?
不要。Tailscaleを使えば、ルーターの受信ポートを一切開けずに、外出先から自宅の機器へ安全につなげる。ポート開放は攻撃対象になるので避けるのが今の定石。
使っていないPCを常時稼働させると電気代はどれくらい?
消費電力による。省電力なN100ミニPC(約10W)なら年3000円弱、古いデスクトップ(60W)だと年1万6千円ほど。古いPCは電気代で意外と高くつく。
NAS(ネットワークHDD)でローカルLLMは動く?
実用的には難しい。NASのCPUだと7Bクラスのモデルは1回の応答に数分かかる。NASはモデルや同期データを置く倉庫にして、AIの実行はミニPCやMac miniに任せるのがいい。