WoLで遠隔からPCを起動し操作できるようにする

3 min read

新年あけましておめでとうございます!
無能です。

自宅鯖は一旦実家に置いていくことにしたことと、もはや高速インターネット契約しなくても実家の自宅鯖のネットワークを使えばあんまり困ること無い気がしてきたのでビルドやデスクトップ環境のリモート環境(VNCサーバー)として使っているRyzenマシンを使えるようにしておきたいです。

でも、常にマシンの起動Onにしておきたくもないので遠隔起動出来るようにしておきます。

リモート構成イメージ

メインの自宅サーバは常に起動させておくのでそのマシンから経由でRyzen機の起動とSSHすることを想定します。
では、その自宅サーバにはどうアクセスするの?ということになりますが、VultrのVPNサーバを経由してVPNネットワーク内から自宅サーバにアクセスし、Ryzen機の起動とSSHクライアントとして使います。

  1. Vultr - FreeBSD鯖から自宅鯖にSSH
  2. 自宅鯖からWoLでRyzen機を起動
  3. 自宅鯖からRyzen機にSSH

という流れです。

Ryzen機側の準備

Ryzen機でWake on Lanを有効化

Wake on Lanは標準ではオフにされているはずです。
特定のパケット、マジックパケットを受け取ったときに起動を行ってくれるものです。
Ryzen機のBIOS画面から有効化します。
Image

Ryzen機で認識されたか確認

ethtoolを使いWake on Lanが有効化されているか確認します。

sudo pacman -S ethtool
sudo ethtool eth0

以下のような感じでWake-on: gとなっていればOKです。

alleycat:[hrtaro]:~$ sudo ethtool eth0
[sudo] hrtaro のパスワード:
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g

そして、このマシンのMACアドレスをメモしておきます。

ip link show eth0

これで一度シャットダウンします。なお、-hオプションが無いとメンテナンスモードとなるシングルユーザモードとなってしまうので気をつけてください。

sudo shutdown -h now

これでRyzen機側は一度おしまいです。

クライアント側の準備

wake on lanを入れる

起動させるマシン側はDevuanですので、aptで検索してみます。

$ sudo apt search wakeonlan
ソート中... 完了
全文検索... 完了  
gwakeonlan/stable 0.8.5-1 all
  Wake on LAN を用いてマシンを起こすツール

wakeonlan/stable 0.41-12.1 all
  wake-on-LAN が有効なイーサネットアダプタに 'マジックパケット' を送信

ありました! インストール

sudo apt install wakeonlan

wakeonlanで起動

それでこれで起動出来ちゃいます。

$ wakeonlan {macAdress}
Sending magic packet to 255.255.255.255:* with {macAdress}

重い腰をあげてやったつもりが思った以上にすんなり行って我ながら感動です!
あとは、ping -c 5 起動したマシンのIPなりでping通り始めたらSSHしましょう。 それでは。
みなさま良い一年になりますように。

PGP --- Contact --- Machines