コンテンツへスキップ

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

Wake On LAN (WOL)と呼ばれる機能です。LAN で目を覚ます、って事ですね。

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

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

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

ネットワークアダプタの設定

はじめに。

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

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

現状の確認。

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

環境は以下の通り。

図1: 検証環境の構成図。iPhoneとDELL M6700がsoftbankのWi-Fiルーター経由でつながっている様子。
図1: 検証環境の構成図。iPhoneとDELL M6700がsoftbankのWi-Fiルーター経由でつながっている様子。
  • リモート接続したい端末
    • Dell Precision M6700(以降「M6700」)
  • ネットワークアダブタは3つ
    • イーサネット(有線)
    • 内蔵の無線LAN モジュール
    • USB 無線LAN 子機
  • LAN 環境(WiFi で1Fに設置。)
    • ソフトバンクのルーター

M6700 へWi-Fi 経由でiPhone からアプリを使ってリモート接続を確認。
接続に使用する機器は、内蔵の無線LANアダプタ と、USB 接続の無線LANアダプタを使用しています。

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

コンピューター名で指定ができないのは環境の問題でしょうね^^。

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

(※1)

図2: iPhoneのリモートデスクトップアプリで「接続できません」エラー。対象のPCが見つからないとのことでError code: 0x104。
図2: iPhoneのリモートデスクトップアプリで「接続できません」エラー。対象のPCが見つからないとのことでError code: 0x104。

(※2)

図3: 同じくリモートデスクトップアプリのエラー画面。今度は「リモートPCに接続できませんでした」Error code: 0x204。
図3: 同じくリモートデスクトップアプリのエラー画面。今度は「リモートPCに接続できませんでした」Error code: 0x204。

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

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

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

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

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

図4: BIOS画面。「Power Management」内の「Wake on LAN/WLAN」を「LAN or WLAN」に設定しているところ。
図4: BIOS画面。「Power Management」内の「Wake on LAN/WLAN」を「LAN or WLAN」に設定しているところ。

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

BIOS の設定欄の説明に、「ACアダブタが繋がっていることが前提。」とあったので、
ACアダブタの接続を確認。

バッテリーのアイコンに、コンセントのマークがついているのでOK 。
ちゃんとアダプタにつながっている状態ですね。

図5: タスクバーのバッテリーアイコン。コンセントマークが付いていてACアダプタ接続中であることを確認。
図5: タスクバーのバッテリーアイコン。コンセントマークが付いていてACアダプタ接続中であることを確認。
しかし、結果変わらず。スリープ状態だと起動できない。

もしかしたら、有線LANしか「Wake」できないのかも?と思い有線LAN環境(※)でも同様のテストをしたが、ダメだった。

※有線LAN で使用している「Precision M4600(以降「M4600」)」でテストしました。

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

ここでようやくネットで調べてみたところ、「ネットワークアダブタの方でも設定が必要」という事が判明。

ネットワークカードの電源設定で、

  • このデバイスで、コンピューターのスタンバイ状態を解除できるようにする
  • Magic Packet (マジックパケット)でのみ、コンピューターのスタンバイ状態を解除できるようにする

にチェックが必要とのこと。

図6: ネットワークアダプターのプロパティ「電源の管理」タブ。「このデバイスでスタンバイ状態を解除できるようにする」と「Magic Packetでのみ解除」にチェックを入れた状態。
図6: ネットワークアダプターのプロパティ「電源の管理」タブ。「このデバイスでスタンバイ状態を解除できるようにする」と「Magic Packetでのみ解除」にチェックを入れた状態。

さらに詳細設定タブで「Magic Padket(マジックパケット)」も有効になっているのを確認。

図7: 同じく「詳細設定」タブ。「Wake on Magic Packet」の値を「有効」に設定。
図7: 同じく「詳細設定」タブ。「Wake on Magic Packet」の値を「有効」に設定。

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

Magic Packet(マジックパケット)を送信する。

Wake on LAN とは?

Wake on LAN (以降「WOL」)は、ルーターからPCに「Magic Packet (マジックパケット) 」を送信してマシンを起動させる仕組み。

その 「Magic Packet」は意図して送る必要があることに気が付いた。。。orz

Magic Packet はリモートデスクトップ接続のプログラムが勝手に送ってくれると思っていました。

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

Magic Packet (マジックパケット) を送信する方法

スマホアプリ

というわけで、App Storeから「Magic Packet 」を送信するアプリを探してインストール。

諸設定をして、下記の画面から「Wake Up」をクリックすることでスリープ状態からLAN経由で復帰させることができた。

ちなみにマジックパケットは「ブロードキャストアドレス」に送信しています。

図8: スマホの「Wake On Lan」アプリ画面。MACアドレスを設定して「Wake Up」を押すとマジックパケットが送信される。
図8: スマホの「Wake On Lan」アプリ画面。MACアドレスを設定して「Wake Up」を押すとマジックパケットが送信される。
Windows

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

図9: PowerShellでマジックパケットを送信するスクリプトを実行しているところ。MACアドレス宛にブロードキャストで送信。
図9: PowerShellでマジックパケットを送信するスクリプトを実行しているところ。MACアドレス宛にブロードキャストで送信。

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

ブロードキャストアドレスは「255.255.255.255」になっています。セグメント単位のブロードキャストにしたい場合は、$target の行を以下のように書きます。

 $target =  [system.net.ipaddress]::parse("192.168.3.255");

送信ポートを変更したい場合は、Client.Connect()の記述で変更します。

$client.Connect($target, 9);
Linux(ラズパイ)
wakeonlan [-h] [-v] [-i IP_address] [-p port] [-f file] [[hardware_address] …]
 Options
     -h
         this information
     -v
         displays the script version
     -i ip_address
         set the destination IP address
         default: 255.255.255.255 (the limited broadcast address)
     -p port
         set the destination port
         default: 9 (the discard port)
     -f file 
         uses file as a source of hardware addresses

wakeonlan の後にマックアドレスを入れます。
詳細というか、検証したときの投稿がこちら。ヨカッタラミッテッテ。

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

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

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

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

図10: 電源オプションの「電源ボタンの定義とパスワード保護の有効化」画面。「高速スタートアップを有効にする」のチェックを外した状態。
図10: 電源オプションの「電源ボタンの定義とパスワード保護の有効化」画面。「高速スタートアップを有効にする」のチェックを外した状態。
図11: ネットワークアダプターの詳細設定。「省電力イーサネット」の値を「オフ」に変更。
図11: ネットワークアダプターの詳細設定。「省電力イーサネット」の値を「オフ」に変更。

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

しかし、Wi-Fi 接続する方の無線LAN アダブタではできなかった。

どうやら、ネットワークカードの問題で実現できなさそうだ。というとが分かったのでWiFi 経由での電源ON は諦めます。

当初の目標「スリープ状態からの復帰 + リモートPC接続」はできたので、これでOKです。

電源OFF → WOL 電源ON!!! をしたいパソコンは、有線LAN で接続する。

Wake On LAN 設定について、まとめ。

  • スリープモード中の端末にリモートデスクトップ接続するには、
    事前に「マジックパケット」を対象の端末に送りスリープモードを解除する必要があります。
  • マジックパケットで端末のスリープモードを解除するには、
    BIOS やネットワークカードで「Wake on Lan」の機能を有効にしておく必要があります。
  • マジックパケットは「ブロードキャスト」で送信します。

Wi-Fi 経由での WOL(Wake on LAN)でスリープモードを解除するまで。

Wake On LAN する環境

  • ACアダプタは常時挿しっぱなし。
    (ノートPC の場合です。機種で差があるかも。
    BIOS のWake On Lan 設定の画面に注記など情報があると思います。)
  • 対象のPC に「Magicpacket を送信するツール」が必要。(スマホのアプリ、Windows のPowerShell、Linux など。)

※Paspberry Pi や、Linux 端末であれば、簡単にWOL のツールが使用できます。 

Raspberry Pi OS で使えるWOL コマンド

※インターネット経由でWOL する場合は、ルータがインターネットWOL に対応している必要があります。

インターネット経由でWOLする(頓挫中)

インターネット経由で、パソコン電源をONする。(ルーターに依存しない)

  • WOL に対応しているネットワークアダプタを使用していること。

BIOS 設定

  • BIOS 設定画面で「Wake On LAN」的な設定を見つけて「Enable」的な値に設定する。
    (電源管理的なの設定の中に入っていると思います。)
図12: BIOS設定画面。「Wake on LAN/WLAN」の項目で「LAN or WLAN」を選択している様子。
図12: BIOS設定画面。「Wake on LAN/WLAN」の項目で「LAN or WLAN」を選択している様子。

パソコンの電源ON 時に【F12】 キー押すとかでBIOS 設定画面を起動できます。メーカーや機種によって違います。

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

コントロールパネル >デバイスマネージャ >ネットワークアダプタ >対象のネットワークカード →(右クリックメニュー)プロパティ画面

  • 電源の管理タブ
      このデバイスで、コンピューターのスタンバイ状態を解除できるようにする
       →チェック入れる。
電源の管理

対象のネットワークカードは接続しているネットワークのプロパティなどで確認できます。

図13: ネットワーク接続の一覧とIP設定画面。イーサネットアダプター「Intel(R) Ethernet Connection I217-LM」を確認しているところ。
図13: ネットワーク接続の一覧とIP設定画面。イーサネットアダプター「Intel(R) Ethernet Connection I217-LM」を確認しているところ。

ネットワークのプロパティ表示手順(参考)

  • 詳細設定タブ
      Wake On Magic Packet
       →有効
マジックパケット

この状態で、ツールから「Magic Paket」をブロードキャスト送信すれば、スリープモードが解除できる(はず)。

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

注意:設定が変更できないときは、下記のボタンをクリックして変更操作を有効にします。

図14: 「現在利用可能ではない設定を変更します」のリンクを拡大表示。
図14: 「現在利用可能ではない設定を変更します」のリンクを拡大表示。
図15: コントロールパネルの「電源オプション」画面。「現在利用可能ではない設定を変更します」のリンクをクリックするところ。
図15: コントロールパネルの「電源オプション」画面。「現在利用可能ではない設定を変更します」のリンクをクリックするところ。

電源プランの変更

有線LAN 接続ではできても、ワイヤレス 接続でもできるとは限らないので注意。
ネットワークアダプタがWOL 電源ON 機能に対応している必要があります。

  • コントロールパネル >電源オプション
     >プラン設定の変更 >詳細な電源設定の変更 >スリープ>ハイブリッドスリープを許可する
      →オフ

※デスクトップ端末だと、この設定が無いかも。

図16: 「選択されたプラン」欄の「プラン設定の変更」リンクをクリックするところ。
図16: 「選択されたプラン」欄の「プラン設定の変更」リンクをクリックするところ。

図17: 「電源オプション」詳細設定画面。「スリープ」内の「ハイブリッドスリープを許可する」をバッテリー駆動・電源に接続の両方で「オフ」に設定。
図17: 「電源オプション」詳細設定画面。「スリープ」内の「ハイブリッドスリープを許可する」をバッテリー駆動・電源に接続の両方で「オフ」に設定。

電源ボタンの定義の変更

  • コントロールパネル >電源オプション
     >カバーを閉じたときの動作の選択 or 電源ボタンの動作を選択する
      (※現在使用可能ではない設定を変更します)
      >「高速スタートアップを有効にする。」
       →チェックをはずす。

※ノートPCの場合です。
 「電源ボタンの操作を選択する」でも同じ画面になります。

図18: 電源オプション画面。「カバーを閉じたときの動作の選択」のリンクをクリックするところ。
図18: 電源オプション画面。「カバーを閉じたときの動作の選択」のリンクをクリックするところ。

図19: 「電源ボタンの定義とパスワード保護の有効化」画面。「現在利用可能ではない設定を変更します」をクリックして設定変更を有効にするところ。
図19: 「電源ボタンの定義とパスワード保護の有効化」画面。「現在利用可能ではない設定を変更します」をクリックして設定変更を有効にするところ。

図20: 設定変更を有効にした後の画面。「高速スタートアップを有効にする」のチェックを外し、カバーを閉じたときの動作も「何もしない」に変更。
図20: 設定変更を有効にした後の画面。「高速スタートアップを有効にする」のチェックを外し、カバーを閉じたときの動作も「何もしない」に変更。

ネットワークアダプタの設定変更

  • ネットワークアダプタの設定(構成)で、電源設定を変更。
     詳細設定タブ >省電力イーサネット(※機種で表示が違うかも。)
      →オフ

コントロールパネル >デバイスマネージャ >ネットワークアダプタ >対象のネットワークカード →(右クリックメニュー)プロパティ画面 >詳細設定タブ

省電力イーサネット

編集後記 的な。

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

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

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

図21: M6700に内蔵されている無線LANカード(Intel Centrino Ultimate-N 6300)。アンテナ線が3本接続されている。
図21: M6700に内蔵されている無線LANカード(Intel Centrino Ultimate-N 6300)。アンテナ線が3本接続されている。

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

図22: 交換用の無線LANカード。アンテナの接続端子が2本分(J301・J300)しかなく、これが原因だったと判明。
図22: 交換用の無線LANカード。アンテナの接続端子が2本分(J301・J300)しかなく、これが原因だったと判明。

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

あと、ワイヤレスでのWOL はやや不安定な感じがします。
有線LAN 接続の場合はバッチリです。

以上です。

(Visited 55,764 times, 8 visits today)

「スリープモード中のPC へ リモートデスクトップ接続する」への1件のフィードバック

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

コメントを残す

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