テレワーク環境に接続するために、ラズパイで Wake On Lan(wol)

テレワーク環境を整備していく中で、サーバパソコンの電源ON/OFFをどうするかというのが、
案外、皆さん、問題になっているようです。

まず、何が問題かというと、WakeOnLan用のMagicパケットと呼ばれている電文は、Lan範囲を超えて通信がしずらいのです。

本来であれば、WakeOnLanというのは、同一LAN内でコマンド入力しなければならないのです。

そのため、まず家庭LANと社内LANをVPN(仮想通信網)で結んでおきます。

SoftEtherVPNを使って、サーバがある場所とクライアント間はVPN接続します。

このようなシステム構成にするために、私のやり方では同一LAN上に、サーバをたたき起こすためのラズパイを配置しておきます。

Rasbianは、2019-04-08-raspbian-stretch.zip を使用しました。

今であればRasberryOS(旧Rasbian-Buster)ですね。

私が構築する「テレワークシステム」では、サーバとクライアント間にAWSクラウドを置いて、SoftEtherVPNサーバに中間ノードをやらせています。

この構成だと、サーバがある場所に接続できるようにするために、エンドポイントのルータなどに穴を空ける等の手間がなく、セキュアにいけます。

サーバパソコンを遠隔からキックする手順

  • サーバがある会社LANに、ラズパイを置いて、ラズパイにはSoftEtherVPNクライアントをセットして、そこからインターネット上のAWSクラウドに常時、接続しておくようにします。
    ラズパイは消費電力が少ないし、重い処理をするわけでもないので、エコに運用できます。
  • 会社のサーバもSoftEtherVPNクライアントをインストールしておきて、同じくインターネット上のAWSクラウドに常時、接続しておきます。
    ※ AWSクラウド上の同じ仮想HUBポートに、家庭パソコンと会社サーバをVPN接続します。
      通信できるように、同一アドレス体系にしておきます。
  • ラズパイには Wake On Lan (wol)をインストールする (コマンド入力:sudo apt-get install wakeonlan)
    インストールが完了したらあとは対象のマシンにマジックパケットと呼ばれるものを送信すれば電源Onとなります。
    マジックパケットを送信するときは、電源を投入するパソコンのLANカードのMACアドレス宛てに送信します。
    サーバパソコンMACアドレスを「ipconfig /all」で確認しておきます。
    パソコンの電源を切っておいて、以下のコマンドをLAN内から実施すれば、パソコンの電源をONにできます。

     (コマンド入力:  wakeonlan AA:BB:CC:DD:EE:FF  [AA:BB:CC:DD:EE:FFはMACアドレス] )
  • ラズパイのデスクトップにキック用アイコンを用意しておく
  • lxshortcut」というパッケージをインストールします。
    メニューから、「設定」→「Add / Remove Software」を指定し、「lxshortcut」を検索窓に入力して、 表示された一覧から「LXDE application shortcut editor」にチェックボックスを入れて、 「Apply」をクリックしてインストール。
    認証が出るのでパスワードを入力するとインストールされます。
    インストール後、メニューにあるフォルダアイコン→「ツール」→「現在のフォルダでコマンドを実行する」をクリック。

ポップアップした「コマンドの実行」で、 「lxshortcut -o <コマンド>.desktop」(<コマンド>は機能名)
のように入力します。

するとアプリケーションショートカット画面が表示されるので、 以下のように入力

設定例
名前:WAKEUP-DELL
コマンド:wakeonlan XX:XX:XX:XX:XX:XX
ツールチップ:設定なし
端末エミュレータで実行:on

画面にショートカットができます。 毎回、サーバパソコンの電源を入れるために、ラズパイにUltraVNCなどで接続し、画面アイコンをダブルクリックします。
(私がやると2回実施すると立ち上がってくるみたい)

【 注意!! 】
ラズパイ4だと、HDMI端子をディスプレイに接続しておかないと、VNC画面を表示したときに、画面が真っ黒状態であることが案外あります。
その場合には、TeraTermなどでSSH接続してから、「ip neigh」をコマンド実行して、LAN内にいる端末のIPアドレスとMACアドレスの内容を見て、「wakeonlan XX:XX:XX:XX:XX:XX(画面からコピペ)」でたたき起こせば良いかと。

サーバパソコンの調整など

私は、DELLのPrecisionT1700 をサーバにしていますが、BIOS設定で『Power management』という項目の中にある、『Deep Sleep Control』の設定が『Disabled』になっていないとWakeOnLanが効かないみたいです。 このように、BIOSの特殊設定に、Wake OnLanの動作が影響を受ける場合があるので、うまく動かなかったら、ぐぐりましょう!

また、Windowsパソコンの以下の設定に注意が必要です。

  • 電源オプションの設定 「高速スタートアップを有効にする(推奨)」のチェックをはずす
    ※ チェックをはずすときに、「現在利用可能でない設定を変更します」をクリックして修正できるようにできます
  • デバイスマネージャーの設定
    使っているネットワークドライバLANカードを右クリックで「プロパティ」を開きます
    WakeOnLanの設定項目の調整をします。
    私の使っているLANカードでは、

    ■wake On Magic Packet
     WakeOnMagicPacket:有効
     WakeonPatternMatch:有効
    ■Wake on Link change
     Wake on link chage:Enabled
     Wake on Magic Packet:Enabled
     Wake on pattern match:Enabled
     WOL Link Power Saving:Enabled

    に直しました。

LANカードごとに項目が違っているので、Wake On Lanに関係すると思われる項目の調整が必要です。

以上、ラズパイはほとんど電源消費量を使わないので、お財布にやさしいです。

ラズパイは上げっぱなしで、サーバは使ってないときは、電源断しておけば、セキュリティ的にも安心です。

ちなみに、色々調べましたが、ラズパイ自身はWakeOnLanに対応していないので、電源断状態からたたき起こすことはできないみたいです。