
自宅にあるMacBookやMac mini、iMacを、とっても手軽に「サーバー化」してみませんか。
Macをサーバー化すると、スマホからMacの画面を操作できるし、Claude CodeやCodexを外出先でも好きなだけ使えるし、余ったSSD容量をクラウドストレージのように使えるし、圧倒的なメリットが享受できる。
デメリットは少なく、サーバー化した後も、普通のMacとして使い続けることができる。
一昔前なら「サーバー運用」は玄人・専門家でないと敷居が高かったが、現在では、ちょっとしたアプリを入れるだけで、エンジニア経験ゼロでも簡単にMacをサーバー化できる。
本記事では、自宅のMacを「サーバー」に変える手順を、サーバーやSSHの知識がゼロの人でも理解できるよう、分かりやすく整理した。
この記事で学べることは以下の通りだ。これらの設定を一度整えれば、AIエージェントでも、OSSのセルフホストアプリでも、好きなものを載せられるようになる。
- Macをスリープさせない設定(常時稼働化)
- 「Tailscale」アプリによるネットワーク整備(外出先から自宅Macに安全に繋がる専用回線)
- スマホからMacに接続する方法
- 「Termius」アプリによるSSHとtmux(Claude CodeなどのCLIツール向け)
- 「RustDesk」アプリによるGUI操作(Macの画面をスマホに映して直接操作)
難解なルーターのポート開放も、有料の固定IPも必要ない。筆者はなんとpovoのモバイル回線で古いMacBook Airをサーバー運用している。
AI時代に驚くほど役立つ「サーバー運用」の知識を、ぜひ身につけてほしい。
サーバー化したMacで実現できること
本記事で紹介する手順をコピペしていくだけで、次のことができるようになる。
ビジネスパーソンにとっても、学生にとっても、趣味でMacを使っている人にとっても、きっと役立つはずだ。
- AIエージェントを外出先から操作できる: Claude CodeやCodex CLIを、自宅Macで動かしっぱなしにし、通勤電車やカフェからスマホで指示・承認・確認ができる。
- セルフホストアプリを自分専用に24時間動かせる: AIメール秘書の「Inbox Zero」など、セルフホスト可能な有名OSSアプリを動かす。データを外部サービスに預けず、自分のマシン上で動かせる。
- 自宅Macのファイルに外出先からアクセスできる: スマホからMacの中のファイルを取り出したり、逆に送り込んだりできる。
- スマホからMacのデスクトップGUIそのものを操作できる: 外出してから思い出した自宅のMac上の作業を、スマホから遠隔マウス・キーボードで完了できる。
- 月額費用ゼロでVPSが手に入る: 本記事で使うTailscale・tmux・RustDeskはすべて個人利用無料だ。VPSを借りなくとも、様々な実験プロジェクトを気軽に無料で試行できる。
Macのサーバー運用/スマホ遠隔操作に必要なもの
Macとスマホさえ持っていれば、他のものはほとんど必要ない。また、スマホもiPhoneでなく、Androidでも可能である。Wi-Fiではなく有線LAN接続にした方が安定すると思われるが、安定したWi-Fiなら支障はない。
Macの常時稼働といえば、24時間常駐のAIボット「OpenClaw」が話題になった。各メディアでは「Mac mini」が24時間稼働に適した端末として紹介されていることが多かったが、実際には、MacBook AirやMacBook Proなどでも十分運用可能だ。
筆者自身も、自宅に余っていたMacBook Airを使ってサーバー運用を行っている。
電気代も心配するほど掛からない。
Appleが公式に公開している消費電力データでは、Mac mini(M4)のアイドル時はおおむね5〜7W程度。平均10Wで24時間365日動かしても年間約87.6kWh、目安単価31円/kWhなら年約2,700円(月230円ほど)だ。
実際に重要なのはアプリで、Tailscale, tmux, Termius, RustDeskの4つを導入するが、いずれも無料で使用できる。
追加投資ゼロで、24時間稼働するMacサーバーが手に入るのが大きな利点である。
ステップ1:Macを自動スリープさせない設定
サーバーとして常時起動させるからには、自動でスリープされては困る。まずはMacの設定で、スリープ関連の機能をオフにする必要がある。
Mac miniやiMacなどの据え置き型と、MacBookでは、設定すべき項目が若干異なる。
- Mac mini・iMacの場合:システム設定 → 「エネルギー」を開き、「ディスプレイがオフのときに自動でスリープさせない」をオンにする。
- MacBookの場合:システム設定 → 「バッテリー」→ 「オプション」から、「電源アダプタ使用時はディスプレイがオフのときに自動でスリープさせない」をオンにする。

画面をロックしてログイン画面に戻しても、裏で動いているプロセスは止まらない。家族がMac内の別のアカウントを使っていても、裏側でClaude Codeを動かすことさえ可能だ。
なお、万が一、停電した場合の復帰方法まで考えると若干面倒だ(初回ログインをどうするか/ディスクの暗号化を解除するか等)。本記事では、たまには自宅に帰ってMacを操作できると想定し、停電対策までは扱わない。
MacBook特有の設定ポイント:外部ディスプレイ、排熱、バッテリー延命
MacBookでは、蓋を閉じると強制的にスリープしてしまう。外部ディスプレイの有無によって、追加設定が必要かどうかが変わってくる。
- 外部ディスプレイがある人は、本体を閉じても、上記の設定をしていれば、常時稼働してくれる。実際、筆者は外部モニターにつないだクラムシェルモードのまま、常時稼働運用している。
- 外部ディスプレイがない人は、蓋を閉じるとMacはスリープしてしまう。この場合、無料アプリのAmphetamineを入れて、「電源接続中のみ」といった条件付きでスリープを防ぐ必要がある。
また、MacBookの場合には、Mac miniなどと違いバッテリーが入っているので、長時間使用によるバッテリー劣化も気になるところだ。
念のためやっておくと良いであろう設定も紹介する。
- バッテリーの劣化対策:システム設定 → バッテリー → 「充電」の情報アイコンから、上限を80%に設定できる。
- 排熱対策:蓋を開けたままにして、画面を真っ暗にする方が、放熱を促せる。ただし、Apple SiliconのMacBookは発熱が小さく、筆者は閉じたまま使っている。

ステップ2:Tailscaleで、自宅Macとスマホを接続する
サーバー運用を行うには、外部(外出先のスマホなど)と自宅のMacをネットワークで繋げる必要がある。
古典的な方法は、ルーターの「ポート開放」だ。ポート開放とは、いわばインターネットに向けて自宅の窓を開けることで、世界中からの不正アクセス試行に晒されるリスクがあった。また、自宅の回線/ルーターがポート開放に対応していない場合も多い。
「Tailscale」は、アプリを入れるだけで、自分の所有するデバイス同士が繋がる仮想のネットワーク(tailnet)を結んでくれる革新的なツールだ。
同じTailscaleアカウントでログインしたMacとiPhone/Androidは、世界中どこにいても、同じWi-Fiの中にいるかのように通信できる。
ルーターの設定不要、受信ポートの解放も行わないので、(パスワードさえ守れば)外部からの攻撃のリスクも大幅に減る。
Tailscaleの導入作業は非常に簡単で、専門知識は必要ない。
- アカウント作成: TailscaleのサイトでGoogleアカウントやApple IDを使ってサインアップする。個人のアカウントで作れば自動的に無料のPersonalプランになる
- Macにインストール: 公式サイトからMac版をダウンロードしてログインする。App Store版もあるが、公式サイトからダウンロードするスタンドアロン版が公式の推奨だ。
- スマホにインストール: App Store / Google PlayでTailscaleアプリを入れ、同じアカウントでログインする
各デバイスにTailscaleをインストールすると、管理画面からそれぞれの端末の接続状況を確認できる。

「Edit Machine Name」からデバイス名を書き換えることもでき、iPhoneの機種名などが判別しやすいようにしておくと良いだろう。
デバイス名は「MagicDNS」としても使われ、IPアドレスの数字ではなく mac-mini のようなデバイス名でSSH接続できるようになり、以降の手順が格段に楽になる。

ステップ3:MacのSSHを有効にし、スマホからTermiusで接続する
同一のTailscaleネットワーク上にMac, iPhone/Androidが揃ったら、Mac側で「SSH」と呼ばれるターミナルの遠隔操作を受け入れる設定をオンにする。
Mac側で、システム設定 → 一般 → 共有 → 「リモートログイン」をオンにする。
これがmacOS標準のSSHサーバーだ。アクセスを許可するユーザーは「すべてのユーザ」ではなく、「指定したユーザのみ」にして自分のアカウントだけを追加しておく。

SSHとは、離れた場所から自分のMacの中に、様々なコマンドを打ち込むことができる仕組みだ。スマホのSSHアプリに打ったコマンドがMacのターミナルに届き、Mac上で実行され、実行結果がスマホ側に表示される。
これを使うことによって、Macの中で動くClaude CodeやCodexを、スマホから遠隔操作することも可能になる。

スマホから「Termius」でSSH接続を行う
スマホ側のSSHアプリにはTermiusを使う。iPhone・Android両対応で、SSH接続もSFTP(ファイル転送)も無料のStarterプランに含まれる。
Termiusでは、接続先マシンの登録情報を「ホスト(Host)」と呼ぶ。まずは自宅のMacをホストとして登録しよう。
Termiusを開いたら、「Hosts」の一覧で「+」ボタンを押して新規ホストの作成画面に入り、次の4項目を入力する。
- Label: 一覧に表示される名前。
MacBook Airなど適当でよい - IP or Hostname: MacのMagicDNS名(ステップ2で確認したデバイス名)

- Username: Macのユーザー名
- Password: Macのログインパスワード

右上のチェックマークで保存したら、登録したホストをタップするか、長押しして「Connect」を選択する。ターミナル画面が立ち上がり、接続が成功するはずである。

より安全な公開鍵認証に移行しておく
パスワードによる接続テストが成功したら、パスワードよりも安全な「公開鍵認証」に移行する。
SSH鍵は「秘密鍵(スマホ内に保管)」と「公開鍵(Macに渡す)」のペアになっており、スマホのTermius内で鍵を生成し、そのうち公開鍵だけをMacに登録する。
Termius特有の用語が若干わかりにくいので、先に用語を整理しておく。
- Key: 秘密鍵と公開鍵の鍵ペアそのもの
- Identity: 「ユーザー名+Key」をひとまとめにした名刺のようなもの。ホストに割り当てて使う
- Keychain: KeyやIdentityを保管しておく場所(Termiusのメニュー名)
作業としては、(1) 鍵入りのIdentityを作る→(2) 公開鍵をMacに登録する→(3) ホストの認証方法をIdentityに切り替える、という流れだ。
(1) 鍵入りの「Identity」を作る
- Termiusの「Keychain」メニューで「+」ボタン→「New Identity」を選択
- 「Key」→「Generate Key」で新しい鍵ペアを生成する(種類はデフォルトのまま)
- 「Username」にはMacのユーザー名を入力、「Password」は空欄のまま、「Key」に今生成した鍵を選択して保存
(2) 公開鍵だけをMacに登録する
「Keychain」で先ほど作った鍵を開くと、「Private Key(秘密鍵)」と「Public Key(公開鍵)」が表示される。Macに渡すのは、下側のPublic Keyだけだ。

とはいえ、手動でコピーする必要はない。
Keychainメニューから先ほど作った「Key」をタップすると、エクスポート画面(Export To)になるので、ホスト名の一覧からMacを選択する。
すると、TermiusがMacに接続してターミナル画面が開き、登録コマンドが自動で実行されて、公開鍵がMacに書き込まれる。
(3) ホストの接続方法をIdentityに切り替える
最後に、ホスト(Mac)への接続方法を、パスワード認証から鍵認証に切り替える。
- 「Hosts」メニューで最初に作ったMacを長押しして「Edit」を選択
- 「Credentials」欄のユーザー名とパスワードを削除し、Username欄の右にある人型のアイコンをタップして、(1)で作ったIdentityを選択して保存

以上が終わったら、登録したホストをタップして、ターミナル画面が立ち上がりSSH接続が確立されたら公開鍵認証への切り替えは成功だ。
パスワード認証を無効化して公開鍵認証に限定する
さらに安全性を高めたい場合は、Mac側で、パスワード認証によるSSH接続を無効化する方法もある。
これによって、秘密鍵を持っている端末(事前に登録したスマホ)以外からのSSH接続が不可能となり、さらに安全性を高めることができる。
やり方はシンプルで、Macのターミナルで次のコマンドを実行し、SSHサーバーの追加設定ファイルを1つ作るだけだ。
sudo sh -c 'printf "PasswordAuthentication no\nKbdInteractiveAuthentication no\n" > /etc/ssh/sshd_config.d/100-disable-password.conf'なお、この設定は鍵認証での接続が成功していることを確認してから行うこと。鍵認証が使えない状態でパスワード認証を無効化すると、MacにSSHで入れなくなってしまう。
元に戻したい場合は、作ったファイルを削除すればよい。
sudo rm /etc/ssh/sshd_config.d/100-disable-password.confステップ4:tmuxでスマホを切断してもセッション維持
SSH接続は、切断されると、その場で動かしていた作業も一緒に終了してしまう。例えば、地下鉄で電波が切れた瞬間に、実行中のClaude Codeが落ちてしまったら、実用的とは言えない。
そこで、tmuxというツールをMacに導入する。
tmuxは、Macの中に作業部屋を作り、その中で動作するセッションを永続化してくれるツールで、スマホの電波が切れても、Termiusを閉じても、Macの中の作業が継続するようになる。
まず、すでに導入済みかを確認する。tmuxはmacOSに標準では付属しないが、過去にHomebrewなどで入れていることもあるからだ。Macのターミナルで次を実行する。
tmux -Vtmux 3.5a のようにバージョンが表示されれば導入済みなので、インストールは飛ばしてよい。command not found と出たら、Homebrewでインストールする。
brew install tmuxtmuxで覚える必要がある操作は、以下の4つだけだ。
tmux new -s work # 「work」という名前の部屋を作って入る# → この中で長時間動かしたいプログラムを起動する
# Ctrl-b を押して離してから d → 部屋を出る(中の作業は動き続ける)
tmux ls # 部屋の一覧を見るtmux attach -t work # 「work」の部屋に戻るSSH切断後も生き残らせたいプロセスは、必ずtmuxの部屋を作って、その中で起動するのが鉄則だ。なお、tmuxの部屋はSSHの切断には耐えるが、Mac自体を再起動すると消えてしまうので注意が必要だ。

具体的な使い方としては、Claude CodeやCodex CLIで長時間の作業を実行する際に、tmuxで部屋を作った上でClaude Codeを起動し、Claudeがずっとtmuxの部屋内で動き続けられる状態にする、などが考えられる。
こうすることで、スマホでTermiusを見るのをやめても、スマホの電源を切っても、Claude Codeが働き続けてくれる。また、tmuxの部屋に戻るだけで、いつでもClaude Codeへの指示出しを再開できる。
24時間常時AIコーディングエージェントを動かしたいなら、tmuxは必須ツールなのだ。
ステップ5:RustDeskでスマホからMacのGUI画面を操作する
以上で紹介してきた手順では、ターミナル上でのテキスト作業しか実行できない。
しかしながら、スクリーンショットを撮ったり、CLIで使えないアプリを動かしたり、遠隔でMacの画面自体を操作したい人もいるだろう。
そんな遠隔でのGUI操作を叶えてくれるのが、リモートデスクトップアプリのRustDeskだ。
Tailscaleを導入していれば、RustDeskも非常に簡単に導入できるので、GUI操作もしたいという人は、この機会についでに導入しておこう。
Mac側でのインストール方法
公式サイトからMac版の.dmgをダウンロードし、RustDeskをアプリケーションフォルダに移して起動する。
初回起動時に、macOSの権限を求められる。RustDeskの公式ドキュメントにある通り順に許可する。
| 権限 | 用途 |
|---|---|
| 画面収録 | 画面のキャプチャ(これがないと何も映らない) |
| アクセシビリティ | キーボード・マウス入力の制御 |
| 入力監視 | 新しめのmacOSで入力が効かない場合に必要 |
次に、遠隔でアクセスするための固定パスワードを設定する。
RustDeskの既定は接続のたびに変わるワンタイムパスワードだが、外出先から誰もいない自宅のMacに繋ぐ本記事の用途では成立しない。
RustDeskの Settings → Security から「Set permanent password」を選び、固定パスワードを設定する。Macのログインパスワードを使い回さず、RustDesk専用の長いパスワードにすること。
Tailscaleによる接続に限定する
RustDeskには、RustDesk社の公開サーバーを使って相互接続する機能がある。
しかし、せっかくTailscaleの専用ネットワークがあるので、tailnetだけを使うように制限するのがより安全だ。Tailscale公式にもRustDesk連携ガイドがあるほど相性がよい。
まず、Mac側のRustDeskの Security 設定で「Direct IP Access(IP直接アクセス)」を有効にする。

スマホ側からは、RustDeskのIDではなくMacのTailscale IP(100.x.x.x)を直接指定して接続する。これで通信はtailnet内の直結になり、公開サーバーを経由しなくなる。
また、さらに安全性を重視するなら、「Use IP whitelisting」を有効にし、遠隔操作したいデバイス(iPhone, Androidなど)のTailscale IPをホワイトリスト形式で登録しておくとよい。
こうすることで、事前にリストしたIP以外からのリモート接続が不可能になる。

スマホからのリモート接続の方法
スマホ側のアプリの入手方法は、OSで異なる。2026年8月時点で、iPhoneはApp Storeの「RustDesk Remote Desktop」をインストールすればよいが、AndroidはGoogle Playで配布されていない。Androidでは、公式GitHubのAPKまたはF-Droidから入手する。
スマホからMacへの接続は簡単だが、必ずTailscaleアプリから、Tailscaleネットワークへの接続をオンにした状態で行う必要がある。
RustDeskアプリを開き、接続先にMacのTailscale IP(100.x.x.x)を入力して接続し、先ほど設定した固定パスワードを入力する。
一度接続すればパスワードは保存でき、次回からはワンタップでMacのデスクトップが現れる。

ネクストステップ:サーバー化したMacで何をする?
ここまでの手順で、あなたの自宅のMacは「外出先からCLIもGUIも触れる、24時間常時稼働サーバー」に進化した。
VPSでもNASでもなく、追加費用なしで、24時間常時稼働するサーバーが手に入るのは、非常に嬉しい。
自分の昔使っていたMacを活用するもよし、家族がたまにしか使っていないMacをバックグラウンドでAIコーディングに使うもよし、可能性は無限大である。
あとは、この環境を何に活かすかだ。
筆者が特に有望だと考えているのは、次の2つの使い道である。
- AIコーディングエージェントの遠隔運用: 自宅MacでClaude CodeやCodexを常時走らせておき、外出先のスマホから進捗確認や指示出しをする。
- セルフホストアプリの常時稼働: AIメール秘書のInbox Zeroのようなセルフホストアプリを自宅Macで24時間動かす。VPS代を払わずに、自分専用のWebサービスを持てる。
これらの具体的な構築手順は、今後それぞれ個別の記事として公開していく予定だ。
本記事の環境さえ整えておけば、そのまま土台として使えるので、楽しみに待っていてほしい。
当面はRustDeskで外からMacを覗けるだけでも十分に便利なはずだ。