がらぱっぱ

自分用覚え書き中心(モバイル関係中心だったはずが)

【LOOXUでlinuxサーバ】WOLのサーバとしてPCの電源ONを行ってリモートでPCいぢろう

linuxサーバとして生まれ変わったLOOX U/C30くん。
せっかく常時電源ONのサーバとして動かすので、まずは他のPCのWOLWakeOnLAN)の為のサーバとしてセットアップ
とりあえずは、LOOX Uから(別のPCからSSHで入って)PCやNASの電源ONしようぜ。

これができると将来
・外からVPNで接続して好きなPCを起動して接続できる。
・「おっけーぐーぐる、PCつけて」って言ってPCの電源つける
とかできちゃうわけ。夢が広がります。
簡単に起動できるのなら、必要な時だけ起動して心置きなくシャットダウンできるから「あぁ、後で使うかもしれないからつけとこ」ってずーっとつけっぱなしなんてもったいない事がなくなります。

まずは

WOLってなんだ

Wake on LANマジックパケットを投げる事によってLAN経由でPCの電源をONにする仕組みです。
ここらへんが参考になります。
www.atmarkit.co.jp

どうしたいのか

linuxを入れたLOOX UからPC(Windows 10)の電源を入れる。
ついでにシャットダウンも簡単にできればいいね。

うちの構成

f:id:garapappa:20210303214338p:plain:w600

セットアップと設定(WOL)

サーバ側のセットアップ

wakeonlanってそのものつまりのパッケージがあるのでインストール

sudo apt install wakeonlan

使い方は簡単。
MACアドレス物理アドレス)をしてするだけ
wakeonlan xx:xx:xx:xx:xx:xx
またはファイルに物理アドレスを書いて
wakeonlan -f target-pc.conf
とかファイルを指定するとできます。

xx:xx:xx:xx:xx:xx は物理アドレスで、windowsだとコマンドラインから
ipconfig /all
と打つと表示されます。

Windows PC側のセットアップ

WOLパケットに反応して電源ONとなるような設定

BIOSの設定とネットワークアダプタの設定があります。
機種等によって設定が変わるので前述の記事
【リモートワーク自由自在】Windows 10 Wake On LAN(WoL)入門:WoLでPCを起動(1/2 ページ) - @IT
等を参考にしてWOLの設定を行う。

有線LANはまず大丈夫ですけど、無線LANはいろいろ面倒そうです。

電源ON後リモートで操作できるようにVNCサーバをインストール

VNCサーバとVNC Viewerをインストール
WindowsVNCとして定番かな?
UltraVNC
forest.watch.impress.co.jp

インストール
f:id:garapappa:20210303230635p:plain:w400
ちなみにインストールされたvncviewwer.exeは単独で別のPCに持って行っても使えます。
なのでデスクトップでインストールしてノートPCにはvncviewer.exeだけをコピーして使う事も可能です。
(あ、ライセンス的にOKかどうかはしらなーい)

インストール時にサービスとして立ち上がるように
f:id:garapappa:20210303230802p:plain:w400

これで、ノートPCから
SSHでLOOXUにログイン
wakeonlanでデスクトップPCの電源ON
ちょっとしてからノートPCからvncviewerでデスクトップPCへ接続・ログイン
で操作が行えます。

ちなみにlinux側からWindowsPCのシャットダウンもできたらかっこいいじゃない?

ってことで。
これは将来「おっけーぐーぐる。PCシャットダウンして」への布石ね。

sambaをインストール

たぶん正確にはsamba-commonを入れればいいみたいなんだけど、どうせsambaいれるよねーということで

sudo apt install samba

Windowsへシャットダウンコマンド

以下のコマンドでWindowsPCにシャットダウンコマンドが投げられる

net rpc shutdown -I IPアドレス -U "ユーザ%パスワード"

ユーザ・パスワードはWindowsの管理者権限のユーザのものにする。

エラーになったらWindowsレジストリをいじる

ただし、たぶんエラーになる。
Windows側のセキュリティで引っかかっているのかな?

Could not initialise pipe winreg. Error was NT_STATUS_OBJECT_NAME_NOT_FOUND

Windows側でregeditを起動する

HKEY_LOCALMACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Policies\System
以下に
DWORD(32)値で
LocalAccountTokenFilterPolicy
のキーを作成し、値を1にする

参考
Enable Mapping to \\Hostname\C$ Share on Windows 7 or Vista


これでシャットダウンがリモートでできるようになる。