出先から自宅PCの電源を入れる:NASの中のUbuntuから wakeonlan を打つだけ
外出先で「あのファイル、家のPCに置いたままだ」と気づくこと、ありませんか。
私はよくあります。しかもそういうときに限って、PCの電源は切ってあるかスリープ中です。
つけっぱなしにしておけば済む話ですが、使わない時間もずっと電気を食わせておくのは気が進みません。
そこで、出先から、家のPCの電源を入れられるようにしました。
仕組みはWake-on-LANという昔からある機能で、やっていることは「家の中にある別の機械から、PCに起きろという合図を送る」だけです。
先に書いておくと、私はネットワークの専門家ではありません。
この記事は、うちの環境で実際に動いている構成と、ハマったところをそのまま書いた記録です。
「つけっぱなしをやめたいけど、外から使えないのは困る」という人が、自分の家でもできそうか判断できれば十分です。
やりたかったのは「出先で、家のPCの中身を取り出す」こと
うちには自作のメインPCと、小さなサブPCがあります。
普段の作業はPCでやって、できたものはNASに置く、という使い方をしています。
困るのは、NASに移し忘れたファイルが、PCの中に残ったまま出かけたときです。
NASなら外からでも見られるようにしてあります(Tailscaleを使っています。経緯はこちらの記事に書きました)。
でも、PCの中に置いたままのファイルは、PCが動いていないと取り出せません。
やりたかったのは、これだけです。
- 出先から、家のPCの電源を入れる
- PCに入って、置き忘れたファイルをNASへ移す
- 用が済んだら、またスリープに戻す
PCを24時間つけっぱなしにすれば、1つ目は要りません。
ただ、私のメインPCはRTX 3080を積んだゲーム用の自作機で、使っていない時間まで動かしておくほどの理由はありませんでした。
全体の構成:NASの中のUbuntuから「起きろ」を送る
Wake-on-LANの合図は、PCと同じ家のネットワークの中から送る必要があります。
外のインターネットから直接PCに送っても届きません(ルーターで止まります)。
なので、家の中に「合図を送る係」が1台いります。
うちでは、NASの中で動かしているUbuntuの仮想マシンがその係です。NASは家族の写真やスマホのバックアップのためにずっと電源が入っているので、ここに任せるのがちょうどよかった、という理由です
(NASの中でUbuntuを動かしている話はこちらの記事に書きました)。
流れを図にするとこうなります。
出先のMac
│ Tailscale(外から家の中に入る道)
▼
NASの中のUbuntu
│ wakeonlan <PCのMACアドレス> ← 家の中で「起きろ」を送る
▼
メインPC / サブPC が起動
│
▼
Macから Chromeリモートデスクトップ で入る
→ ファイルをNASへ移す → スリープに戻す
出先ではMacを使っています。Ubuntuに入るところまでは、普段と同じです。
Tailscale経由でUbuntuにSSHでつないで、そこで1行打つだけです。
wakeonlan <起こしたいPCのMACアドレス>
wakeonlan はUbuntuなら sudo apt install wakeonlan で入ります。
MACアドレスは、起こしたいPCのLANポート(有線)のものを指定します。Windowsならコマンドプロンプトで ipconfig /all と打つと「物理アドレス」として出てきます。
合図を送る側の準備は、本当にこれだけでした。
むしろ手間がかかるのは、起こされる側のPCです。ここから先はそちらの話になります。
サブPCは、BIOSの設定を1つ変えただけで起動した
まず、うまくいった方から書きます。
サブPCは、GMKtecの小さなミニPCです(アイキャッチの写真の機械です)。
こちらは、電源を完全に切った状態からでも起動できます。
やったのは、BIOSで 「Power On By PCI-E」を有効にした、これだけです。
設定してから試したら、1回目から起動しました。拍子抜けするくらい何も起きませんでした。
名前から分かるとおり、「LANなどの部品から合図が来たら電源を入れていい」という許可を出す項目です。
初期状態では無効になっていることがあるので、Wake-on-LANが効かないときはまずここを見ると早いと思います。
ただし、この項目の名前はマザーボードのメーカーによって違います。
「Wake on LAN」「PME」といった言葉が入った名前になっていることもあるので、「Power On By PCI-E」が見つからなくても、電源管理まわりのメニューを探してみてください。
ハマったところ:増設した10GのLANカードは、電源を切った状態からは起動できない
問題はメインPCの方でした。
メインPCは、Ryzen 9 5900XとRTX 3080の自作機です。
NASとの間を10Gでつなぎたくて、マザーボードに10GのLANポートが無かったので、PCIeスロットに10GのLANカードを増設しています
(10Gにした話はこちらの記事に書きました)。
このカードが、電源を完全に切った状態からのWake-on-LANに対応していませんでした。
スリープからなら起動できます。でも、シャットダウンしてしまうと、合図を送っても起動しません。
Wake-on-LANの説明を読むと「BIOSで有効にすれば電源オフからでも起きる」と書いてあることが多いのですが、
それは合図を受け取るLANポート(カード)側が対応していればの話です。
後から増設したLANカードを使っている人は、ここで引っかかるかもしれません。
結局、スリープで待たせる運用にした
解決はしていません。運用で逃げています。
- メインPCは、使い終わったらシャットダウンではなくスリープにしておく
- スリープからなら、10Gカード経由の合図で起動できる
実際、普段はスリープなので、これで困ったことはありません。
停電で落ちたときは、電源が戻ったら自動で起動するようにした
スリープ運用で気になるのは停電です。電気が止まればスリープも何もなく落ちますし、
落ちたあとは「電源オフの状態」なので、Wake-on-LANでは起動できません。
そこで、マザーボード側で「電源が戻ったら自動でPCを起動する」設定を入れています。
停電から復旧すればPCが勝手に起動するので、外から入れなくなる心配はありません。
マザーボードに付いているLANなら、電源オフからでも起動できる
ちなみに、メインPCのマザーボードにもともと付いているLANポートなら、電源を切った状態からでも起動できます。
起動できないのは、増設した10Gカードだけです。
つまり、うちのメインPCがスリープで待たせる運用になったのは、10Gの環境を作りたくて、増設カードを選んだからです。
「電源オフから起動できること」と「10Gで速くつなぐこと」のどちらを取るか、という話で、私は10Gを取りました。
これから10GのLANカードを増設しようとしている人は、そのカードが電源オフからのWake-on-LANに対応しているかを、買う前に確かめておくと迷わずに済みます。
対応していなくても、スリープで待たせる運用で十分なら、困ることはありません。
起動したあとは、Chromeリモートデスクトップで入る
PCが起動したら、あとはMacからChromeリモートデスクトップで入ります。
Windowsの画面がそのままMacに出てくるので、置き忘れたファイルをNASへ移します。
終わったら、そのままリモートの画面でスタートメニューから「スリープ」を押して戻します。
Chromeリモートデスクトップは、操作される側のPCに、あらかじめ設定を済ませておく必要があります。
出先で「入れない」となってからでは遅いので、家にいるうちに一度、別の端末から入れることを確かめておくと安心です。
まとめ
- Wake-on-LANの合図は、家の中の機械から送る。うちではNASの中のUbuntuが係で、Tailscale経由で入って
wakeonlan <MACアドレス>を打つだけ - 起こされる側は、BIOSで 「Power On By PCI-E」(メーカーによって名前は違う)を有効にする。サブPCはこれだけで1回目から起動した
- 増設した10GのLANカードは、電源オフからは起動できなかった。マザーボードに付いているLANなら起動できる。10Gを取ったので、メインPCはスリープで待たせている
- 停電に備えて、電源が戻ったら自動で起動する設定も入れておく
- 起動したあとはChromeリモートデスクトップで入る。家にいるうちに一度試しておく
PCを24時間つけっぱなしにしなくても、出先から必要なときだけ起こせます。
「つけっぱなしは嫌だけど、外から使えないのも困る」という人は、まず手元のPCのBIOSに、Wake-on-LANの項目があるかを見てみてください。
NASまわりの記事は、困りごと別に自宅NAS・自宅サーバーまとめにまとめています。
