目標
インターネット側の端末からマジックパケットを送信し、自宅LAN上にある端末の電源を投入する
今回の構成(すべて有線LANでの接続)
まずは自宅LAN上で MacOS X から Windows7 の電源を投入できる様にする
- Windows7端末のBIOS設定から、WOLを有効にする
- 詳細タブ の「Power On by LAN機能」を「有効」にして保存
- WIndows7端末のデバイスマネージャ > {使用しているNICのプロパティ} > 電源の管理タブから、WOL関連の設定を有効にする
- 「このデバイスで、コンピューターのスタンバイ状態を解除できる様にする」にチェック
- 「Magick Packet でのみ、コンピューターのスタンバイ状態を解除できるようにする」にチェック
- WIndows7端末のデバイスマネージャ > {使用しているNICのプロパティ} > 詳細設定タブから、WOL関連の設定を有効にする
- 「PMEをオンにする」値:オン
- 「Wake on Link 設定」値:強制
- 「Wake On Magic Paket」値:オン
- 「Wake On Pattern Match」値:オン
- MacOS X にマジックパケットを送信するツールを導入
- ツールを起動し、メニューから [HOST] > [Scan Local Networks...] を選択し [All Computers]にチェックを入れて[Scan]
- Windows7端末のIPアドレス、MACアドレスが端末一覧に表示されている事を確認する。
- Windows7端末をシャットダウンしておき、ツールの端末一覧からWindows7端末のものを選択して[Wake Up!]
- Windows7端末が起動したら成功
※WOL関連の設定が一部もれている状態の場合に、スリープ状態からは起動するがシャットダウン状態からは起動できないという状況が発生した。
インターネット側からのマジックパケットを受け付けられるように、自宅LANのルーターを設定する
インターネット側から来たマジックパケットを自宅LANにブロードキャストさせる
※LAN側ホストにブロードキャストアドレスが設定できないルーターの場合は、あきらめる
インターネット側端末のCentOSからマジックパケットを送信し、Windows7端末の電源を投入する
- CentOSにマジックパケットを送信するツールをインストール
- 自宅LANのグローバルIPアドレス、ルーターに設定したポート、Windows7端末のMACアドレスを指定してコマンドを実行
- wol -i yyy.yyy.yyy.yyy -p 301 xx:xx:xx:xx:xx:xx
- Windows7端末が起動したら成功
※マジックパケット送信ツールとして「ether-wake」があるが、宛先IPアドレスが指定できないので別途「wol」を導入した
インターネット側端末のCentOSからマジックパケットを送信し、Mac端末の電源を投入スリープから復帰する
- Mac OSXの システム環境設定 > 省エネルギー を開いて設定
- 「ネットワークアクセスによるスリーブ解除」 にチェック
- 自宅LANのグローバルIPアドレス、ルーターに設定したポート、Mac OSXのMACアドレスを指定してコマンドを実行
- wol -i yyy.yyy.yyy.yyy -p 301 xx:xx:xx:xx:xx:xx
その他Mac OSXに関するメモ
- MacOS XのWake On Lanでは、電源断からの電源投入には対応していない
- マジックパケットを受け付けられる状態の時にPINGを打つとTTLが32になる(通常起動時は64)
- スリープから復帰したあとグラフック関連の挙動が不安定。(画面がグレーのまま操作できないなど)
- スリープ復帰時にパスワードを要求しない設定にしておくと大丈夫そう。
- ChromeリモートデスクトップでWindows7からMac OSXに接続した場合に、ログインやスリープ復帰後画面のパスワード入力欄にキー入力ができない
- 自動ログイン、スリープ復帰時にパスワード不要な設定にするか、VNCで接続して入力
- 操作できなくなったらSSHで接続して、コマンドラインから再起動
- osascript -e 'tell application "Finder" to restart' ※viaOSXをコマンドラインからスリープさせる - Qiita