メニュー 閉じる

スリープモード中のPC へ リモートディスクトップ接続する

スリープモード中のPCへリモートディスクトップ接続する

今まで、リモート接続する端末は「スリープモードに入らいないように設定した上で電源を入れっぱなし」にして待機させていましたが、VMを3つ起動した状態でCPU ファンとかグラフィックボードのファンとかが、結構な音で回りまくっているのを見ていると、やっぱり待機中は「スリープモード」にしておきたい。電源オフが最も理想。

確かBIOS で「Wake on LAN」を設定しておけば、ネットワーク経由で「電源オン」できるんだよなぁ。と軽い気持ちで初め、結局1日かかりました。

迷走

よくわかっていない状況で迷走した様子が書かれてますので、設定の参考に読んでくださる方は、「まとめ」まで読み飛ばしてください。

現状の確認。

リモート接続できないのに、いきなり「Wake on LAN」を設定してもダメなので、先ずはリモート接続できる条件を確認した。

環境は以下の通り。

  • リモート接続したい端末
    • Dell Precision M6700(以降「M6700」)
  • ネットワークアダブタは3つ
    • イーサネット(有線)
    • Wi-Fi(無線、オンボード)
    • 外付け無線LAN子機(無線、USB)
  • LAN環境2つ。いずれも1Fに設置。
    • ソフトバンクのルーター
    • フレッツ光のルーター(インターネットなし)

M6700 へWi-Fi 経由でiPhone からアプリを使ってリモート接続を確認。
電源が「ON」の状態ならば、IPアドレス指定で接続できるが、「スリープ」の状態だと接続できないことを確認。エラーメッセージから、ちゃんとリモートPC は見つかっているが、接続できなかったことがわかる。

接続名PCの電源外付け無線LAN子機Wi-Fi結果
コンピューター名ONON
(ソフトバンク)
OFF対象のPCが見つからないため、リモートPCに接続できませんでした。(※1)
IPアドレスONON
(ソフトバンク)
OFFOK
IPアドレススリープON
(ソフトバンク)
OFFリモートPCに接続できませんでした。(※2)
IPアドレススリープOFFON
(ソフトバンク)
リモートPCに接続できませんでした。

(※1)

(※2)

やはり、スリープモードのPCにリモート接続するには、
一旦スリープモードを解除する必要がある。

とりあえずBIOS の「Wake on LAN」の設定を変更。

パワーマネジメント のところに「Wake on LANWLAN」の項目があったので、値を「LAN or WLAN」に設定した。

BIOS の設定欄の説明には、「ACアダブタが繋がっていることが前提。」とあったので、ACアダブタの接続を確認。
バッテリーのアイコンには、コンセントのマークがあるので、これはOK。

しかし、結果は変わらず。スリープ状態だと起動できない。
もしかしたら、有線LANしか「Wake」できないのかも?と思い有線LAN環境でも同様のテストをしたが、ダメだった。

※有線LAN環境のテストをするため、いったんリモートPCを「Precision M4600(以降「M4600」)」に変更。

ネットワークアダブタの設定を変更する。

ここでようやく調べてみたところ、「ネットワークアダブタの方でも設定が必要」という事が判明。
ネットワークカードの電源設定で、
「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」と、
「Magic Packet でのみ、コンピューターのスタンバイ状態を解除できるようにする」にチェックが必要とのこと。

「Magic Padket」も有効になっているのを確認。

設定後、スリープ状態のリモートPCへの接続を確認をしてみたが、、、
起動しない?

Magic Packet を送信する方法。

Wake on LAN (以降「WOL」)は、ルーターからPCに「Magic Packet」を送信して起動させる仕組み。
しかし、Magic Packet は意図して送る必要があることに気が付いた。。。orz

というわけで、App StoreからMagic Packet を送信するアプリを探してインストール。下記の画面から「Wake Up」をクリックすることでスリープ状態からLAN経由で復帰させることができた。

「Magic Packet」の送信については、ルーターが対応していたり、リモートツールが対応していたり、専用のツールをインストールしたりと様々あるらしい。

Windows 10で接続する場合は、「Power Shell」 下記を実行することで、ツールをインストールしなくても、Magic Packet が送信できる。という記事を見つけたので実施してみた。

$mac_addr = @("**:**:**:**:**:**") ← MAC アドレスを入力。
$header=[byte[]](@(0xFF)*6)
 
foreach ($item in $mac_addr){
    Write-Host "send magic packet to:" $item
    $addr = [byte[]]($item.split(":") | %{ [Convert]::ToInt32($_, 16)});
    $magicpacket = $header + $addr * 16;
    $target = [System.Net.IPAddress]::Broadcast;
 
    $client = New-Object System.Net.Sockets.UdpClient;
    $client.Connect($target, 2304);
 
    $client.Send($magicpacket, $magicpacket.Length) | Out-Null
    $client.Close();
 
    Write-Host "Send magic packet to:" $item -ForegroundColor Green
}

MAC アドレスを入力したら、Power Shell に貼り付けして、Enterキーを押すと、
Magic Packet が入力したMACアドレス宛に届いたようです。

電源オフ状態からの、電源オン。

「スリープ解除」できたら、次は「電源オン」を確認。
電源をオフにした状態からのパワーオンができるか試したが、上記だけではできなかった。

電源が入っていない状態のPCをWOLするには、追加で電源周りの下記の設定が必要。
電源オフ時の電源供給の状態が重要らしい。

M4600のイーサネットアダブタ(有線)ではこの設定で電源オンができることが確認できた。
Wi-Fi 接続する方のアダブタでは、電源の問題で実施できないことも分かった。
目標は「スリープ状態からの復帰 + リモートPC接続」なので、これでOKです。

まとめ

Wi-Fi 経由でのWOL(WOWL)の設定について。

スリープモードを解除するまで。

WOL する環境

  • IP は固定の状態。(ただし、ルーター側で固定。アダプタのIP 4設定は自動取得)
    多分、IP固定はマストな設定ではないと思われます。
    ACアダプタは常時挿しっぱなし。
    ※ノートPCの場合、アダブタ接続は必至(機種で差があるとは思います。)
  • 対象のPC に「Magic paket を送信するツール」が必要。
  • WOL に対応しているネットワークアダプタを使用している。

BIOS 設定

  • BIOS 設定画面で「Wake On LAN」的な設定を見つけて「Enable」的な値に設定する。

ネットワークアダプタの設定(構成)で、WOL を有効な感じに設定する。

  • 電源の管理タブ
    • このデバイスで、コンピューターのスタンバイ状態を解除できるようにする。→チェック入れる。
  • 詳細設定タブ
    • Wake On Magic Packet →有効

この状態で、ツールからMagic Paket を送信すれば、スリープモードが解除できるはず。

さらに電源オフからのWOL を実施するには。

電源プランの変更、確認。

  • カバーを閉じたときの動作の選択※> 「高速スタートアップを有効にする。」 のチェックを →「はずす」。
    ※ノートPCの場合です。
  • プラン設定の変更> 詳細な電源設定の変更> スリープ> ハイブリッドスリープを許可する →「オフ」
  • ネットワークアダプタの設定(構成)で、電源設定を変更。
    • 詳細設定タブ>
      • 省電力プラン →「オフ」

電源オフ →オンにする場合、ローカルポートでできても、ワイヤレスでできるとは限らないので注意。
電源関連で条件があって、それをクリアしていないとダメみたいです。
M4600 の場合、有線接続のイーサネットアダプタでしか成功しませんでした。

編集後記 的な。

検証後に2F に設置してあるM6700 にWOL(ワイヤレス)設定を適用としたところ、スタンバイを解除を可能にする項目がグレーアウトの状態で設定できなかった。
どうも、Wi-Fi のアダプタが対応していないらしい。。。

というわけで、M4600 のアダプタを外しM6700 のアダプタと交換。

M4600 のアダプタ。線が3本繋がれている。

M6700 のアダプタ。真ん中の線が一本少ない。この1本の差なのか!?

付け替えた事で、スタンバイを解除の設定ができるようになったので、アダプタの非対応だったんだなぁと思う。

その後もスリープ解除ができない時があったり、やや不安定な感じ?Magic packet を送信した時のフィードバックが欲しいところ。

気になった事。

なんか、Wifi 経由だとめちゃめちゃ遅延している?
MagicPacket 送信して50分後くらいに「ぱきゅぶ!」とか鳴ってスリーブ解除されたりする。
誤作動の線も捨てきれないが、イベントビューアで見ると、Wi-Fi からスリープ解除されているので、アダブタの誤作動かもしれない。

CentOS には、コマンドラインからMagic packet を送信する機能があるらしいので、そのうち試してみたいと思います。
ether-wake [MAC アドレス]

関連投稿

1件のコメント

  1. ピンバック:インターネット経由でWOLする – .zapping

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です