2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Synology DS218jのDDNS更新をタスクスケジューラーで行う

Last updated at Posted at 2019-02-02

現状、pathconf: Permission deniedというエラーがメールで通知されてきて不安なのだが、mydnsのLOG INFOをみるとちゃんと更新されているので、大丈夫みたい……。

その後、MyDNS.JPはちゃんと更新されているのに対してNo-IP.comは更新されずにexpireすることが判明。何が違うの……???

はじめに

Amazonで人気のDS218jを導入しテケトーに使っていたが、「外部アクセス」機能を使ったDDNS更新がうまく行っていないことに気がついた。どうも、「外部IPアドレスが更新されないと通知しない」ようで、更新間隔が空きすぎてDDNSサービス提供者にexpireさせられるというお約束感のある問題のようである。
というわけで、MyDNS.JPとNo-IP.comの更新を「タスクスケジューラー」機能でやってみた。

MyDNS.JPのDDNS情報を更新する

(わざわざ「カスタマイズ」で外部アクセスのDDNS設定を書いたのに、更新がうまくいかなくてしょんぼりしたワケで。)

HTTP-BASICアクセスなら、更新したいIPアドレス情報を持っていなくても、ユーザ情報だけ持ってアクセスすればアクセス元のIPに更新してくれる親切仕様。(つまり、ルータの下にDSを設置していて外部IPの取得に一手間いる場合に簡単。)
「タスクスケジューラー」で「作成」->「予約タスク」->「ユーザー指定のスクリプト」、「タスク設定」の「ユーザー指定のスクリプト」にwgetコマンドを書いて終了。よくあるシェルスクリプトのように、一行目にbashとかを書く必要も無し。(念のためログファイルの追記出力を書いたが、メールで通知される仕組みがあるからそれで十分な気もする。)

wget --http-user=USERNAME --http-password=PASSWORD http://ipv4.mydns.jp/login.html -a logfile

No-IP.comのDDNS情報を更新する

no-ip.comのページからは情報が見つからなかったが、URLアクセスでIP更新が可能。外部IPアドレスの取得はcurlで。これが最良の方法なのかどうかは知らない。

ip=`curl ifconfig.moe`
wget "http://dynupdate.no-ip.com/update.php?username=USERNAME&pass=PASSWORD&host=HOST&ip=${ip}" -a logfile

補足

sshアクセス可能にしておいて、閲覧可能なパスにログを吐けばミスに気付きやすい。
そうでなくてもメールでレポートが飛ぶように設定できるけどさ。

参考文献

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?