2017年12月27日水曜日

ルータをRT-AC68Uに更新してDDNS更新させるようにした

先日のamazonサイバーマンデーでASUSのルータ『RT-AC68U』がちょっとお安くなっていたのでポチっちゃいました。今まで使ってたNECのAtermWG1800HPが時々再起動しないといけなかったりしたので替え時でした。

11ac対応してりゃいいや、レビュー悪くなさそうだし、2系統WAN使えるユニークな機能もあるやんくらいの認識で、買ってから気づいたのですがこのルータ、SSHで中のLinux触れるようになってました。
それなら今までバッファローのNAS『LS410DX』のLinuxでやっていたDDNS更新をやらせたろ!ということでやってみました。アップデートあるたびにHDD抜いて中のLinuxに潜れるようにってやるの面倒だしね。
ASUSが提供するDDNS使いたかったけど、振られたIPをDDNS更新に使うが、au光のHGWからルータへはローカルIPが振られるため使えない環境です。
なので外部へグローバルIPを確認しに行き、そのIPでieserver.netのDDNSを更新するようにしました。

SSHを有効にする設定は”管理”のシステムタブから。ポートはLANオンリーでも一応変えておく。(そして時間経つと変えたことを忘れて入れねー!ってなりそう)


接続はいつものTeraTermで。ユーザー名とパスワードは管理画面に入るものと同じ。


こちらのブログ記事によると起動時に①USBマウント時に実行されるスクリプトを作成、設定して、②crontabに直接書き込んで定期的に実行する方法があるらしい。
 How to schedule cron jobs on an ASUS wireless router

ただcrontabへ書き込むところまではできるものの、実行されない...。

なのでUSBマウント時に実行されるスクリプトから直接watchコマンドで定時実行するようにした。
下記2つのシェルスクリプトを作って...

bootinit.sh
#!/bin/sh
/jffs/bootinit/watch.sh &
logger watch.sh_Start

watch.sh
#!/bin/sh
watch -n 1800 -t /jffs/bootinit/ieserver.sh

 USBマウント時のスクリプトに設定。
nvram set script_usbmount=/jffs/bootinit/bootinit.sh
nvram commit

ルータに手頃なUSBメモリつないで再起動。
ログ参照するとマウント後にスクリプトを実行しています。
Dec 27 23:24:54 disk monitor: be idle
Dec 27 14:24:56 usb: USB vfat fs at /dev/sda1 mounted on /tmp/mnt/sda1.
Dec 27 14:24:56 *****: watch.sh_Start
Dec 27 14:24:57 rc_service: hotplug 736:notify_rc restart_nasapps
Dec 27 23:24:57 iTunes: daemon is stoped
Dec 27 23:24:57 FTP Server: daemon is stoped
Dec 27 23:24:58 Samba Server: smb daemon is stoped
Dec 27 23:24:58 kernel: gro disabled
Dec 27 14:24:58 *****: DNS Update done
Dec 27 23:24:58 Timemachine: daemon is stoped
Dec 27 23:24:58 miniupnpd[725]: shutting down MiniUPnPd

0 件のコメント :