ヤマハのルーターにWake On LAN用のGUIを追加する

2017年10月に発売されたばかりのヤマハのルーターRTX830に触れる機会がありました。

最近のヤマハのルーターには素敵なGUI管理画面が備わっているのですが、残念ながらGUIでの**W**ake **O**n **L**AN(以下**WOL**と略します)はできません。

幸い「カスタムGUI」という機能により任意でGUIを追加できるようなので、試してみました。

--------------------------------------------------------------------------------

## 対象としている人

- ヤマハのルーターを使ってる人
	- VPN機能がある機種
	- カスタムGUIに対応している機種([対応機種はコチラ](http://www.rtpro.yamaha.co.jp/RT/docs/custom-gui/index.html))
- 離れた場所からパソコンの電源を入れたい人
- CUIよりGUIで簡単に操作したい人
- ネットワーク越しのWOLは避けたい人

遠隔地からVPNで管理画面に入りGUIでパソコンに電源を入れる…という使い方を想定しています。

--------------------------------------------------------------------------------

## 0.サンプル

- ルーターのIPアドレス：`192.168.100.1`
- 接続に使用するパソコンのIPアドレス：`192.168.100.5`
- ルーターの管理者パスワード：`adminpass`
- WOL専用ユーザー名：`woluser`
- WOL専用ユーザーパスワード：`wolpass`
- カスタムGUIファイルの保存先：`C:\Users\qiita\Desktop\wol.html`

として以下を説明していますので、適宜読み替えてください。

--------------------------------------------------------------------------------

## 1.WOLを有効にする

対象とするパソコンのWOLを有効にしておいてください。

- [Google検索：WOL 有効](https://www.google.co.jp/search?q=WOL+%E6%9C%89%E5%8A%B9&ie=utf-8&oe=utf-8)

--------------------------------------------------------------------------------

## 2.専用ユーザーを作成する(5で行ってもOK)

WOL用の専用ユーザーを作成します。このユーザーは通常の管理画面にはアクセスできなくなりますので注意してください。

GUI管理画面から or CUIから…どちらの方法でもOKです。※CUIで作成する場合は、この手順はスキップし後でまとめて行っても構いません。

便宜上…

```
# login user woluser wolpass

user : woluser
pass : wolpass
```

とする事にします。(上記コマンドの意味が分からなくても大丈夫です)

--------------------------------------------------------------------------------

## 3.カスタムGUI用のファイルを用意する

ヤマハのホームページにサンプルファイルが用意されています。

- [ダウンロード(wol_custom_gui.zip)](https://network.yamaha.com/setting/router_firewall/custom_gui/wol-rtx1200/wol_custom_gui.zip/file/download/)
	- [親ページはコチラ](https://network.yamaha.com/setting/router_firewall/custom_gui/)

zipファイルをダウンロードすると、中に `wol.html` というファイルが入っていますので、分かりやすい場所に移動してください。

これをそのまま使ってもOKですが、昭和の香りがするとても素敵なデザインなので、気になる方は適宜カスタマイズしましょう。

--------------------------------------------------------------------------------

## 4.TFTPクライアントを用意する

3で用意したファイルをルーターに転送する手段として、今回はTFTP[^1]を利用します。[^2]

[^1]: **T**rivial **F**ile **T**ransfer **P**rotocolの略。Trivial FTP…つまり簡易なFTPです。

[^2]: [カスタムGUIファイルを保存したUSBメモリをルーターに挿して転送する方法等もあります。](https://network.yamaha.com/setting/router_firewall/custom_gui/wol-rtx1200)

…といっても、ファイルを1つ転送するだけですので、専用のアプリを別途用意する必要はありません。OSにはじめから用意されているCUIクライアントを利用します。

ただ、**最近のWindowsではデフォルトで使えない状態になっている**と思います。コマンドプロンプトに `tftp` と打ち込んでみて「そんなコマンドは無いよ」と怒られた時は、下記のサイトを参考に使える状態にしておいて下さい。(Macintosh向けの説明もあります。)

- https://developerslife.xyz/mac-win-tftp/

--------------------------------------------------------------------------------

## 5.ルーターにTFTPの受け入れを設定する

### 5-1.ルーターにTelnet接続する

任意のTelnetクライアントでルーターに接続します。

Windowsであれば、`Windowsキー＋R`(ファイル名を指定して実行) ⇒ `cmd` と打ってコマンドプロンプトを開くのが手っ取り早いです。

```
> telnet 192.168.100.1

Password:

RTX830 Rev.15.02.01 (Thu Jun 22 16:17:56 2017)
Copyright (c) 1994-2017 Yamaha Corporation. All Rights Reserved.
To display the software copyright statement, use 'show copyright' command.
```

### 5-2.管理ユーザーへの昇格

接続後に `ad` と入力すると、自動補完で `administrator` というコマンドが入力されますので、管理ユーザーに昇格させます。

```
> administrator
Password:
#
```

手順2を飛ばした場合は、WOL専用ユーザーを作成してください。

```
# login user woluser wolpass
```

### 5-3.TFTPの受け入れを設定する

`tftp host` コマンドを使用します。

`any` は全てのIPからのTFTPを許可するという意味です。状況に応じて、後者のように自分のIPアドレスのみを許可するようにしてください。※後ほど `none` に戻します。

```
# tftp host any

もしくは

# tftp host 192.168.100.5
```

`quit save` で設定を保存しつつ管理者権限から抜け、もう一度 `quit` でTelnetを終了させます。

```
# quit save
セーブ中... CONFIG0 終了
> quit

ホストとの接続が切断されました。
```

--------------------------------------------------------------------------------

## 6.TFTPでファイルを転送する

**ファイルのパスは絶対パスで**指定します。

転送先のパスに続けて `/ルーターの管理者パスワード` を指定する点に注意してください。※管理者パスワードを設定していない場合は、`/adminpass` の部分は不要です。

```
>tftp 192.168.100.1 put C:\Users\qiita\Desktop\wol.html /wol.html/adminpass
転送を正常に完了しました: 1 秒間に 5802 バイト、5802 バイト/秒
```

もし以下のようなエラーが出た場合は、5のTFTPの接続許可に失敗しているか、管理者パスワードの指定が間違っています。

```
サーバー上のエラー: Access violation
 接続要求に失敗しました
```

--------------------------------------------------------------------------------

## 7.カスタムGUIを有効にする

再度ルーターにTelnet接続し、念のため `show file list` コマンドで、ファイルが指定の場所にアップロードされている事を確認します。

```
> telnet 192.168.100.1

> show file list / all
[ / ]
2017/11/02 18:00:00            5802 wol.html
```

`ad` と入力し管理ユーザーへ昇格後、`httpd custom-gui` コマンドで、カスタムGUIを有効にします。

```
> administrator
Password:

# httpd custom-gui use on
# httpd custom-gui user woluser directory=/ index=wol.html
```

忘れない内に、5-3で設定したTFTPの受け入れを `none` に戻しておきます。

```
# tftp host none
```

以上で設定は終了です。設定を保存しつつ管理者権限から抜け、Telnetを終了させます。

```
# quit save
セーブ中... CONFIG0 終了
> quit

ホストとの接続が切断されました。
```

--------------------------------------------------------------------------------

## 8.WOL用のGUI管理画面にアクセスしてみる

管理画面に woluser / wolpass でログインし、カスタムGUIになっている事を確認してください。

RTX830の管理画面はベーシック認証ですので、もしセキュリティ上問題がないのであれば…

`http://woluser:wolpass@192.168.100.1/`

…というURLをブックマークしておくと便利だと思います。(環境によってはこのURL形式には対応していません。)

--------------------------------------------------------------------------------

## 参考URL

- http://www.rtpro.yamaha.co.jp/RT/docs/custom-gui/index.html