コンテンツへスキップ

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

インターネット経由でリモート接続できたので、仕上げとしてインターネット経由の「WOL (Wake on LAN)」に挑んでいます。

一応、クローズしました。

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

unimoniのアバター

結局、ルーターの仕様の問題でそのままではインターネット経由のWOL はできそうにないです。
設定の参考には多分なりませんが、ルーターの問題でWOL できないケースの一つの解決策としてご参考になれば^^

ます初めに、自宅LAN 内でのWOL はこんな感じで成功しました。
LAN 内であればブロードキャストアドレスにマジックパケットが送信できるので、問題なくWOL できます。

序章

検証している環境と現状について。

  • 端末はDell Precision M6700 。有線でルーターに接続。
  • インターネットはソフトバンク光ルーターは「E-WMTA2.3」
  • LAN 経由のWake On LAN では「電源オフ」の状態から「電源オン」できる。

WOL のトリガーはUDP ポートに送信される「マジックパケット」なので、
インターネット経由で自宅のルーターに向かって「マジックパケット」を送り、
それがターゲットPC のUDP ポートに届けばWOL できるはず。

とすれば、自宅ルータのポート転送設定でインターネットからのUDP 通信を起動したい端末のIP へ転送する様に設定しておけばいいと思われる。

ルーターの設定にてWAN 側の任意のポート番号と、LAN 側の任意のUDP 番号をマッピングする。

なんとなく、任意のUDP番号をファイアウォールで許可設定しておく。

iPhone のWOL アプリに「グローバルIP:ポート番号」を指定して、マジックパケットを送信。

動かない。電源オンしなかった。
WOL のマジックパケットはどこに送り付けてもいいと思っていたが確認せねば。

LAN 内から、PowerShell 経由でマジックパケットを送信。

$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
}
*************************************************************
  $client.Connect($target, 2304);後ろの数字が送信先のポートです。
*************************************************************

ポートは、7でも9でも、2304でもそれ以外でも起動した。
特に空いていれば問題なさそうです。

いろいろ試した結果、iPhone アプリでパケット送信先のポートが指定できるものを使用したところ、
インターネット経由で起動することができた。

「Remote Boot」

  • 設定値
    • Name or Hosetname = 適当な名前
    • MAC Address = WOL したいパソコンのMAC アドレス
    • IP Address = 自宅ルーターのグローバルIP
    • Port = MagicPacket を送る、UDP のポート番号

延長戦 突入

翌朝、改めてインターネット経由でWOL を試したところ、、、できない。orz

なんとなく、昨晩設定したポートフィルタが正解だったのだろうか。
昨日、下図のポートフィルタの設定を作成し、有効にして検証したところWOL できたのですが、
確認のとして、無効にして検証をしたところ、その時は関係なく起動できたので、
関係ないかなぁと思って削除してしまったのが、ダメだった。と思われ。

ただ、昨日と同じように設定を作り直しても起動ができない。
セキュリティを丸ごと「低」に設定したところ、起動できた。

きっとこのポート関連のセキュリティがマジックパケットをブロックしていると思われる。
もう少し設定方法を探らないと。

延長戦 其の弐

翌朝できない。

フィルタは今回「低」にしても「高」にしてもできない。
この設定は、多分関係ない。

ファイアウォールも多分、いらないだろうと思い始めた。

いろいろ考えていく中、ルータの設定で「任意のIP アドレスのポート」にパケットを転送していることに疑問を持った。
IP は確かにルーターの機能で固定しているが、電源が入っていないパソコンをIP 指定なんてできるのだろうか。

LAN でWake on LAN するときは、ブロードキャストアドレスを使用しているじゃないか。

インターネットから来たMagic packet もブロードキャストでばらまくべき。

そこでポート転送設定に「255.255.255.255」を設定して見たところ「無効なアドレス」で登録出来ない。最後だけ「255」にしてもダメだった。
まあ、既にポートマッピングでは無いから当たり前か。

インターネット経由でのブロードキャストアドレスへの通信は基本、どんなルーターでも遮断されるみたい。

上記を踏まえ、WOL するルーターの設定について解説しているサイトを検索してみた。
「ARP を破棄する仕様の場合」という言葉が刺さる。
多分、これ。

(2021/5/4 追記)
この記事を見ていただいた方からもコメントをいただきました。
やっぱりこれ。

延長戦 其の参

ルーターの設定をいじってみるも現状の問題を解決できそうな設定はない。

ソフトバンクのサポートに
「インターネット経由で WOL したいんですけど、どうしたらネット経由でブロードキャスト でパケット送れますか?」
って質問しようかとも思ったが、多分「サポートオプション」に加入しないとダメなのかな。。。

つきましては、「プランB」に変更です。

WOL はしばらく検討します。。。

解決策

unimoniのアバター

プランB はこんな感じになりました。

インターネット経由でのWOL はルーターの仕様の問題で難しいと判断したため、ラズパイを踏み台にして、WOL するという作戦です。

以上です。

(Visited 2,767 times, 2 visits today)

「インターネット経由でWOLする(頓挫中)」への11件のフィードバック

  1. ピンバック: インターネット経由でリモートアクセスする。 – .zapping

  2. ジョンバンジロー

    同じような環境で困ってます。WAN-LANの変換が出来てないのではないかと考えてますが模索中です。解決したら教えていただきたいです。

    1. 最後はルーターの問題ですね。
      WANから任意のポートに送った信号をブロードキャストアドレスへマッピングできればよいと思うのですが、私のルーターではできませんでした。
      もともと、インターネット経由のPC起動の機能を備えたルーターもあるみたいです。
      AtermWF1200HP

      コメントくださってありがとうございました。解決出来たらまた追記しますね。

  3. 同じような環境でWOL設定に成功したので報告させてください。
    「ルーター機能の設定」→「DMZ設定」で
    DMZ機能→有効
    転送先IPアドレス→起動したいPCのLANのIPアドレス
    でうまくいきました。ポートは9です。一応ご報告まで!

    1. 初めまして。もひろーさん。
      ご連絡ありがとうございました。

      なるほど、DMZ 設定を有効にしたら、確かに行けそうな気がします。
      素晴らしい発想ですっ!!

      自分の環境でも検証してみます。
      うまく行ったら、(解決編)として投稿させていただきますね。

      ひとまず、お礼まで。
      ありがとうございました。

    2. ご報告です。

      1)DMZ を有効。
      2)WOL したい端末のIP をマッピング。(DMZ として)
      3)マジックパケットを iPhone アプリからグローバルIP(ポート9)に送信。

      項番3で電源が入ったのですが、電源を切ってから数時間置いてからWOL を試みたところ上手く行きませんでした。

      もう少し検証みたいと思います。
      以上、ご報告まで。

  4. 常時起動して『いない』マシンなわけですから、一定時間でルータのarpテーブルから削除されてしまうので、WoLパケットは『どうにかして』そのネットワークのブロードキャストアドレスに投げるしか方法はありません。
    (arpテーブルから消えたら、いくらターゲットのIPアドレス目掛けてパケットを投げようが、目的のMACアドレスとの紐付けがないのですから、投げようがありません)
    または(ルータに機能があれば)静的にarpテーブルに登録させることでしょうか。

    1. はらぴーさん、はじめまして。
      コメントありがとうございました。

      ———————————————–
      WoLパケットは『どうにかして』そのネットワークのブロードキャストアドレスに投げるしか方法はありません。
      (arpテーブルから消えたら、いくらターゲットのIPアドレス目掛けてパケットを投げようが、目的のMACアドレスとの紐付けがないのですから、投げようがありません)
      ———————————————–

      やっぱり、原因と対策はそうなんですね。
      スッキリしました。ありがとうございます!!

  5. ピンバック: スリープモード中のPC へ リモートデスクトップ接続する - .zapping

  6. 今頃ですが、私の環境での解決法をご紹介します。
    ケーブルTVが供給する光インターネットを使用しており、ブロードバンド・ルーターのメーカーは住友電工です。
    同じように、ブロードキャストアドレスが使えないルーターであるため、PCを落として時間がたつとARPが破棄されてしまい、WoLに失敗する状況でしたが、
    ①PC側:WoLしたいPCのIPアドレスをネットワークの設定により手動で固定する。
    ②ルーター側:ルーターのIPアドレスを予約する機能により、WoLしたいPCのIPアドレスを固定する。
    により、双方のIPアドレスを固定化した結果、パソコンを落として時間が経ってもルーターからのポートフォワードが通るようになり、WoLできる環境になりました。
    ルーターにIPアドレスを予約する機能が付いていたのが、ラッキーでした。

    1. ご連絡ありがとうございました。

      WOLできるようになって良かったです!
      なるほどです。
      WOLできる、できないはルーターの仕様によりけりって感じですね。

      2023/3/22 追記
      先日はコメントいただきありがとうございました。
      うちのルーターでも特定のMACアドレスに対してIP アドレスを予約できるので、今回はPCとルーターの双方でIP固定をしてから、
      ダイレクトにターゲットのポートへマジックパケット転送してみたんですが、、、うまく電源入りませんでした。
      同じ設定で送信先のIP をLAN側のIP に変更しても反応なく、送信先IP をブロードキャストに変更してやっと電源オンできたので、
      ルーターの仕様がネックなのかなーって感じでした。
      以上、ご報告まで。
      ありがとうございました。

unimoni へ返信する コメントをキャンセル

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