メニュー 閉じる

インターネット経由でWOL する。【ルーターに依存しない・プランB】

インターネット経由でWake On Lan できるかどうかは、ルーターに依存します。

「プランB」はルーターに依存しない、インターネット経由WOL です。

常時起動状態の「Raspberry Pi」にインターネット経由でSSH 接続してマジックパケットを送信し、
電源OFF の端末を「Wake On LAN」するプランです。

SSH 接続は、iPhone からRaspberry Pi へ鍵認証を使って行います。
マジックパケットの送信は、wakeonlan コマンドを使用しています。

この操作は、iPhone のショートカットApp でプログラムできるので、
外出中どこからでも、1回のタップで自宅の端末を電源ON 出来るようになります。

インターネット経由でWOL する。「プランB」

Raspberry Pi を使って、
インターネット経由 WOL(Wake on Lan)をする。

断念した「プランA」について。

以前、インターネット経由でWake On LAN をしようと思いたったのですが、
電源オフ状態の端末にルーターの壁が立ちはだかり、マジックパケットを送信することができずに断念しました。

最初はポート開放だけでできると思っていましたが、
・IP を指定してWOL
 →スイッチングハブだから、送信先の電源が落ちていると「IP アドレス」が認識できなくて無理。
・ブロードキャストアドレスへWOL を送る
 →ブロードキャストアドレスへポートマッピングできないので無理。
となり、仕様の問題で無理だと結論しています。

パケットキャプチャソフトの「Wireshark」を使って、
相手の端末が「電源オン」の場合は、きちんとマジックパケットが届いていることを確認。

リピーターハブを使って、
ほんとに送信先が電源オフだとパケットが捨てられているか確認してみたかったのですが、
近代のリピーターハブは非常に高価なので今回は見送りしました。

いろいろと考えた結果、
「誰かに自宅LAN の内側からマジックパケットをブロードキャストしてもらう。」というのが一番かなとなりました。

プランB の概要

  1. 「Raspberry Pi」を常時待機させておき、、、
  2. 「iPhone」からインターネット経由でSSH 接続。
  3. wakeonlan コマンドを実行してマジックパケットをブロードキャストで送信する。

準備

RaspBerry Pi を購入する。

購入を検討したモデル。

■ Raspberry Pi のA とかB とか各モデル毎の違いについては、
各モデルの仕様比較一覧表がウィキペディア にありましたので、そちらを参考にしてください。

Wikipedia 最高。

Raspberry Pi -出典: フリー百科事典『ウィキペディア(Wikipedia)』

■ Raspberry Pi Zero W

WOL に使うだけであれば、他のモデルに比べて定価の安い、Raspberry Pi Zero でもいいかも。

と、思ったのですが、現在入手困難ですね。
2021年7月10日時点では、正規代理店に在庫がない状態でした。

通販サイト上では、たくさんの出品を見かけますが、割高です。
また、ケースや、拡張キットのみの出品が多いので、本体と間違えないように気を付けましょう。

■ Raspberry Pi Zero

「W」なしのRaspberry Pi Zero は、まだたくさん在庫がありました(2021年7月10日)。
現在、1つ 660円で購入できますが、
「生涯を通じて、一人1点のみ購入可能」という制限付きになっております。

WiFi とか有線 LAN ポートとか付いていないモデルなので、
別途USB 接続のLAN アダプタを用意する必要があります。

また、Raspberry Pi Zero、 Wに共通する注意点として、
ディスプレイポートが「Mini HDMI 」、USB ポートがmicro と、
「あんまり一般的には採用されていないかなー^^; 」と思う規格なので、
周辺機器を接続するのに別途ケーブルを準備する、
もしくは変換アダプタの用意をする必要がある点が挙げられます。

少なくとも私はもっていない。。。orz

まあ、サイズ的に仕方ないですね。

既にケーブルを持っている人であれば、Raspberry Pi Zero シリーズの価格は魅力的だと思いますが、
別途購入しないといけないのであれば、Raspberry Pi 3、4 を検討した方がいいと思います。

■ Raspberry Pi 3 Model B

今回は「Raspberry Pi 3 Model B」(ケース付き)を購入しました。
理由は
「接続用のケーブルは既に持っているものばかりなので、新たにケーブル等を追加購入しなくても良いから」です。

とは言え、WOL の為だけにModel B を使うのはいささか勿体ないので、
Raspberry Pi Zero V1.3 も追加で購入しました^^。

多分、Raspberry Pi 3 Model B でセットアップしたSD カードを、Raspberry Pi Zero V1.3 に挿したら動くだろう、、、という見立てです。

WOL 用としては、こんな感じで揃えました。
USB 無線LAN アダプタ は古くなって使わなくなっていたのを再利用します。

左から、ケース、本体、USB 無線LAN アダプタ(右上)、USB タイプB→タイプA変換(右下)。

あと写真忘れていましたが、OS を書き込む「SD カード」が別途必要です。
これも再利用品です。

ケースのセットに関しては、ピン付、ヒートシンク付きで送料無料の270 円でした。

TYPE B →TYPE A 変換もRaspberry Pi の正規代理店で224円(税込)。
本体は660円(税込)、USB 無線LAN アダプタ、SDカードは再利用なのでWOL 用としては合計で1200円ちょっとくらいです。

USB アダプタも1,500円くらい、Mini HDMI → HDMI の変換アダプタの安いの探せば500 円くらいだし、
こっちだけで揃えるのもありかもですね。

でも追加投資でUSB LANアダプタ買うなら、ZERO W とかで安いの探した方がいいのかも。
電源と無線LAN 挿したら何もUSB させなくなるので、リモート接続以外で入力手段がない。。。

「小さいのにちゃんとGUI でOS 動くじゃん。」って感動を味わうならModel B あたりは欲しいかなと思います。
個人的にはZERO 系はセカンドRaspberry Pi 向きですね。

悩ましいですね。

実装の前準備

Raspberry Pi のセットアップ

OS のインストール

最初Raspberry Pi のことをよく理解していなかったので、
普段のOS インストールの様に、メディアでインストールしようとしていました。

OS のインストールの仕方を調べても、なんか変わったやり方をしてる記事が多いなーと思っていました。

とりあえず電源入れて、BIOS の画面を出そうとしていましたが、そのうちに組み込みシステムと気づき、
「なんか変わったやり方をしてる記事」が何をしているのか理解。

公式のイメージャーを使ってOS のイメージを書き込みました。

画像に alt 属性が指定されていません。ファイル名: image-26.png

SSH 有効化

Raspberry Pi の設定 のインターフェース・タブでSSH を有効化します。楽ちんです。

XRDP のインストール

Windows から「リモートデスクトップ接続」を使いたいのでXRDP をインストール。
ファイアウォール(接続ポート3389 に関して)は、SSH でポートフォワーディングして接続するので特に設定しません。

無線LAN 用のドライバーをインストール。

非正規の様な、正規の様なドライバーを使用します。

ファイアウォール に不具合があるので、バージョンアップする。

下記にまとめました。

wakeonlan をインストール。
sudo apt install wakeonlan

送信テスト

受信確認

これで、Raspberry Pi は一旦完了です。

ルーター側でIP アドレスを固定する。

Raspberry Pi 側からでも指定できますが、ルーターで一括管理したいのでルーターで設定しています。

USB 無線LAN アダプタのMAC アドレスを控えておく。

こんな感じでルータ―に設定しています。

ルーターにてRaspberry Pi 向けのポート開放設定をする。

IP が固定できていることを確認する。

ルーターのユーティリティを開いて、
こんな感じにポート転送設定をしています。

WAN 側のポートは変更できるので、起動したい端末ごとにポートを割り振れますね。

スマホアプリから、Raspberry Pi に接続、WOL コマンドを実行する。

iPhone の「ショートカット」というアプリが、ネットワーク内のコンピューターにSSH 接続してコマンドを実行するという機能を提供しているので、これを使用します。

詳しくはこちら。
iPhone から鍵認証を使ってSSH 接続するまでをまとめました。

iPhone →Raspberry Pi へ鍵認証SSH 接続を設定。

Wifi 接続の状態で、秘密鍵でSSH 接続できることを確認。

次に、
4G に切り替え、グローバルアドレス経由でSSH 接続できることを確認。

最後にwakeonlan コマンドを実行してみる。

信号を確認できました。

※Source が「192.168.3.2」になっていますが、イーサネットのアドレスです。
まだ、Raspberry Pi Model B で設定をしています。「192.168.3.250」はwlan1 。

最後に、作成したWOL ショートカットをホーム画面にセットします。

以上で準備完了です。

実装

Raspberry Pi ZERO を組み立てる。

ケースを組み付けて、USB 無線LAN アダプタをつけるだけですけどね。

アクリルの保護シートを剥く前に組み立ててしまう、、、orz の図。

無線LAN アダプタの形状に問題があり、隣に当たって奥まで挿せない。

という訳でこうなりました。名づけて「WOL – S・A・S・O・R・I」

Model B でセットアップしたSD カードを 「WOL – S・A・S・O・R・I」 に挿入する。

「WOL – S・A・S・O・R・I」 起動テスト

起動しました。
モデル名を確認すると、「Raspberry Pi Zero Rev 1.3」と表示されました。

more /proc/device-tree/model

WOL テスト。

電源オフにしたすぐ後はWOL が成功する場合がある為、10分くらい時間を置いてからテストしました。

結果は。。。成功です。

以上でした。

まとめ

Raspberry Pi は「組み込みシステム」なので省電力設計です。
常時起動させておくシステムとしても、うってつけなのではないでしょうか。

また、組み込みシステム なので、「パソコン」というよりは「機器」な訳で、
パソコンにリモート接続してWOL しているわけではありません。
ギリギリ、「インターネット経由でWOL」 と言っていいのではないかと思います。

まあ、WOL 出来れば何でもいいですよね。

最後に 「WOL – S・A・S・O・R・I」 のパスワードによるSSH ログインを無効化しておきました。

/etc/ssh/sshd_config

Posted in リモート接続

関連投稿

1件のコメント

  1. ピンバック:インターネット経由でWOLする(頓挫中) - .zapping

コメントを残す

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