メニュー 閉じる

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

スリープモード中や、電源OFF 状態の端末にリモート接続するには、
接続前に「マジックパケット」という特殊な信号を端末に送信して、事前に端末を起こしてあげる必要があります。

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

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

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

はじめに。

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

読み飛ばさない場合は、迷走した様子を解説付き(囲みの箇所)でご覧ください。

現状の確認。

そもそもリモート接続ができない環境に、「Wake on LAN」を設定してもダメなので、
先に「確実にリモート接続できる事と、その条件」を確認した。

環境は以下の通り。

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

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

接続先指定方法PCの電源USB 無線LAN 子機内蔵の
無線LAN モジュール
結果
コンピューター名ONONOFF対象のPCが見つからないため、リモートPCに接続できませんでした。(※1)
IPアドレスONONOFFOK
IPアドレススリープONOFFリモートPCに接続できませんでした。(※2)
IPアドレススリープOFFONリモートPCに接続できませんでした。

(※1)

(※2)

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

この時点でのWake on Lan のイメージは、
「BIOS でWake on Lan を設定をしておけばリモート接続時に勝手に電源が入る」でした。

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

BIOS 設定画面を見ると、それっぽい設定を発見。

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

※写真はイメージです。環境によって変わりますので、ご参考まで。
ちなみにこの写真はPrecision3510 を設定した時のものです。

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

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

※有線LAN環境のテストをするため、いったんリモートターゲットのPCを「Precision M4600(以降「M4600」)」に変更。
理由は有線LAN ケーブルが届く範囲にあるからです。

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

ここでようやく調べてみたところ、「ネットワークアダブタの方でも設定が必要」という事が判明。
ネットワークカードの電源設定で、
「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」と、
「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 が送信できる。
という記事を見つけたので実施してみましたが、これも上手く行きました。

PowerShellでWake-on-LAN

$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アドレス宛に届きます。

※正確にはネットワーク全体にマジックパケットを送信しています。

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

Wake on Lan で「スリープ解除」を確認できたので、次は「電源オン」を目標に。

現時点では、電源をオフにした状態からのパワーオンができなかった。

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

M4600のイーサネットアダブタ(有線)ではこの設定で電源オンができることが確認できた。

しかし、Wi-Fi 接続する方の無線LAN アダブタでは、ネットワークカードの問題で実施できないことも分かった。
当初の目標「スリープ状態からの復帰 + リモートPC接続」はできたので、これでOKです。

電源オフ → オンをする場合には、有線でLAN を構築することを考えます。

まとめ

スリープモード中の端末にリモートディスクトップ接続するには、
事前に「マジックパケット」を対象の端末に送りスリープモードを解除する必要があります。

マジックパケットで端末のスリープモードを解除するには、
BIOS やネットワークカードで「Wake on Lan」の機能を有効にしておく必要があります。

Wi-Fi 経由でのWake On LAN の設定について。

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

Wake On LAN する環境

  • ACアダプタは常時挿しっぱなし。(ノートPC の場合です。機種で差があるかも。)
  • 対象のPC に「Magic paket を送信するツール」が必要。(スマホのアプリ、Power Sehll、Linux など。)
  • WOL に対応しているネットワークアダプタを使用していること。

BIOS 設定

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

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

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

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

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

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

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

電源オフ →オンにする場合、ローカルポートでできても、ワイヤレスでできるとは限らないので注意。
LAN アダプタに条件があり、それをクリアしていないとダメみたいです。
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 アドレス]

Posted in ネットワーク

関連投稿

1件のコメント

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

コメントを残す

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