プロジェクト

全般

プロフィール

WakeOnLan » 履歴 » バージョン 1

sylow castle, 2019/08/07 11:15

1 1 sylow castle
# WakeOnLan
2
3
## 概要
4
5
LANの別のノードに電源入れるための技術。管理者がクライアントメンテナンスしたりとかするとき使うらしい。
6
特殊なイーサネットフレーム(マジックパケットとか言われる)を送ることで実現する(L2の技術)ため、ルータを超えるにはちょっと工夫が必要らしい。
7
8
起こされる側は機器が色々対応している必要がある、
9
10
- OSシャットダウンしても落ちてもNICの設定に電気を供給する電源
11
- OSシャットダウンしてもLANポートの電源落とさないOS設定
12
- UEFI(BIOS)での電源周りの設定
13
- マジックパケットを受け入れるNICの設定
14
15
起こす側はパケット送信するだけなのでそのソフトがあれば良い。
16
17
## 目標
18
19
- Linuxからマジックパケットを送る
20
- Windowsが受け取る
21
- 同じスイッチに接続されている
22
23
## 設定色々
24
25
### 電源供給の確認
26
27
OSシャットダウン時にNICに電源が通っているかどうかは物理ポートを見ればいい。
28
電源が通ってたらLEDランプが光ったりしているはず。
29
家にあったものではPC側は光ったし、スイッチ側(CISCO Catalyst 3560)も光った。
30
そして導通しない状態では光っていなかった。
31
32
### 送信側(Linux)設定
33
34
eather-wakeというコマンドを使う。これはnet-toolsパッケージに含まれているらしい。
35
36
```
37
# yum install net-tools
38
(中略)
39
# eather-wake -i <マジックパケットを送るI/F名> <パケット受信させるNICのMACアドレス>
40
41
```
42
こんな感じで使うようだ。
43
44
参考:  
45
https://www.agilegroup.co.jp/technote/windows10-wol-setting.html
46
47
48
### 受信側(Windows)設定
49
50
この記事を参考に作業:  
51
https://www.atmarkit.co.jp/ait/articles/0602/25/news014.html
52
53
![設定画面](010_wake_on_lan_windows.png)
54
55
以下をEnableにした。
56
57
- Shutdown Wake Up
58
- Wake on magic packet
59
- Wake on pattern match
60
61
![設定画面](020_wake_on_lan_windows.png)
62
63
OSがNICの電源を落とさないようにしてあげる。
64
65
普通(オプションなし)でipconfigしたらMACアドレスが見えなかった。
66
/allオプションをつけてあげる必要があるらしい。
67
68
```
69
$ ipconfig /all
70
```
71
72
後はアダプターの設定でも見られる。
73
74
### UEFI設定
75
76
色々見ていたらPCI、PICEから電源投入するっぽい項目があったのでそこを有効化。
77
ノースブリッジ当たりの設定だったような気がする。
78
確か以下があったのかな。
79
80
> Power On by PCI/PCIE Device
81
82
### WANから電源投入
83
84
これをやりたかった。
85
外出中とかに「電源投入 -> リモートデスクトップツール起動して作業」とかをできるようにする。
86
電気代が安くなる。
87
88
実現するために環境は以下のようになってる
89
90
- Windows 10 デスクトップ(電源投入対象)
91
- Linux CentOS7(24時間通電、マジックパケット送信)
92
- WebDavサーバ(WAN上にあり)
93
94
ユーザーは以下のような感じで起動を操作する。
95
96
- WebDavサーバに所定のファイルを置くとLinuxが取りに来てeather-wakeを実行
97
98
大体こんな感じのスクリプトになる。
99
100
```
101
#!/usr/bin/bash
102
103
if [ -e /var/nfs/wol ] ; 
104
then
105
    rm -f /var/nfs/wol;
106
fi
107
        
108
/usr/bin/curl -sf -o /var/nfs/wol  -u <ユーザー名>:<パスワード> https://dav.example.com/wol
109
110
if [ -e /var/nfs/wol ] ;
111
then
112
     echo "wake on lan";
113
     sudo ether-wake -i enp1s0 <MACアドレス>
114
fi
115
```
116
117
後はこれを定期的に実行する。
118
起動したい時はタブレットとか・スマホからWebDav内のディレクトリを操作してWolファイルを作ってあげる。
119
起動した暁にはリモートデスクトップで接続できるようになる。
120
121
## 参考
122
123
- https://ja.wikipedia.org/wiki/Wake-on-LAN
124
- https://qiita.com/gam0022/items/4c2a3fdc29ac4977b51c
125
- https://www.atmarkit.co.jp/ait/articles/0602/25/news014.html
126
- https://www.agilegroup.co.jp/technote/windows10-wol-setting.html