linux@Wake-on-LANで遠隔サーバ起動
概要
最近、組み込みボードでL2TP/IPsecを使ったVPNサーバを立てたので、VPNサーバからWake-on-LAN(WoL)を用いて 、プログラムのコンパイル等に使用している開発サーバの起動を行えるようにした時のメモです。環境
環境は下記の通りです。VPNサーバ | 開発サーバ | |
---|---|---|
OS | Debian 9.4 | Ubuntu 16.04.4 LTS |
手順
大きく下記の手順で行いました。- BIOS設定
開発サーバのBIOSでWoLを許可する設定をします。こればっかりは設定の仕方がPC毎に違ったりするので、本記事では記載しません。 - 開発サーバ設定
開発サーバのOSでWoLを許可する設定を行う為のコマンドをインストールします。 - VPNサーバ設定
VPNサーバから開発サーバを起動する為のコマンドをインストールします。
開発サーバ(起動したいPC)の設定
ethtoolのインストール
ethtoolが既にインストール済みの場合は本章の実施はスキップです。私のubuntu serverには元々入っていました。
下記コマンドでethtoolをインストールします。
$ sudo apt-get install ethtool
Wake-on-LAN情報の取得
まずは、下記コマンドでWake-on-LANに使うインタフェース名を調べます。$ ifconfig
↓がコマンド実行結果です。eth0 Link encap:イーサネット ハードウェアアドレス 00:1a:92:50:86:20
inetアドレス:192.168.1.7 ブロードキャスト:192.168.1.255 マスク:255.255.255.0
inet6アドレス: fe80::21a:92ff:fe50:8620/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
RXパケット:49647 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:29796 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:66014316 (66.0 MB) TXバイト:2293992 (2.2 MB)
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:65536 メトリック:1
RXパケット:260 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:260 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1
RXバイト:17840 (17.8 KB) TXバイト:17840 (17.8 KB)
私の場合はeth0
を使います。環境によってはeth0という名称ではないようです。ついでに、MACアドレスも必要になるので、メモしておきます。私のPCの場合は
00:1a:92:50:86:20
でした。次に下記コマンドを使って WoL が有効か確認します。
$ sudo ethtool eth0
eth0
の部分はお使いの環境に合わせて下さい。↓がコマンド実行結果です。
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
この中で、Wake-on: g
となっている個所に注目します。g
の場合は有効となっています。d
の場合は無効となっているようです。WoL の有効化
Wake-on: g
となっている方は不要です。下記コマンドを使って WoL の有効化を行います。
$ sudo ethtool -s eth0 wol g
※ 私の環境では↑のコマンド実行は不要だったので試せていません。ご了承下さい。ちなみに、OS起動時に毎回上記コマンドを使って設定する必要がある為、起動時に自動実行するようにしておきましょう。
VPNサーバ(起動させる為に使うPC)の設定
wakeonlanのインストール
wakeonlanは WoL のマジックパケットを送信するコマンドです。これを使って、開発サーバを起動します。VPNサーバで、下記コマンドによりwakeonlanをインストールします。
$ sudo apt-get install wakeonlan
開発サーバ(起動したいPC)の起動
VPNサーバで下記コマンドを実行する事で開発サーバを WoL で起動します。$ wakeonlan 00:1a:92:50:86:20
MACアドレスは先程調べたものを使います。00:1a:92:50:86:20
は私の環境の値ですので、皆さんの環境に合わせた値を使って下さい。↓はコマンド実行結果です。
Sending magic packet to 255.255.255.255:9 with 00:1a:92:50:86:20
コメント
コメントを投稿