古くなったリンゴを鯖にしよう!(その3)
こんにちは。なかのさんです。
前回から数記事に渡って、とある企画の軌跡をつらつらと書いております。
内容はズバリ、古いMacにUbuntu Serverをインストールして、クラウドストレージとして使う!です。
前回(第2話)では、このMacにUbuntu Serverをインストールして、SSHなどの初期設定を行いました。
第3話となる今回は、DDNSを取得し、外部からアクセスできるよう自分専用のURLを発行してもらいます。そして、DDNSを定期的に更新してもらうように設定します。
では始めます。
DDNSとは
IPアドレスとドメイン名を結びつけるのがDNSですが、一般家庭に提供されるIPアドレスは頻繁に変わる場合が多いです。このため、定期的にIPアドレスとドメイン名を結びつけてやらないと、Webページにアクセスしても見れないということになります。これを解決するのがDDNSです。
DDNSを提供しているサービスはいくつかあって、無料のものと有料のものがあります。有料のものであれば.comなどの知名度のあるドメインを使うことができます。ただ個人で使う場合は、知名度のない(ちょっと変わった)ドメインを使ってでも、無料のサービスを使う方がランニングコストは抑えられると思います。
ということで、今回は無料のDDNSサービスであるMyDNS.JPに登録します。
MyDNS.JPへの登録
まずはMyDNS.JPにアクセスして、ユーザーアカウントを登録します。
ドメイン名を設定
”DOMAIN INFO”のページをスクロールしたところにある、”Domain”と”MX (FQDN)”にお好きなドメイン名を入力します。
このURLが今後Nexcloudへのアクセスに必要なので、どこかにコピペしておきましょう。
IPアドレスとドメイン名を結びつける
さて、ドメイン名とご自身のIPアドレスを結びつけてやりましょう。
以下は、こちらのブログを参考にしました。
更新を行うシェルスクリプトファイルを作成します。
$ cd ~
$ vim ./update_ddns.sh
iキーを押して編集モードに入り、以下をコピペします。
#!/bin/bash
wget -q -O /dev/null https://MASTER_ID:PASSWORD@ipv4.mydns.jp/login.html
一つずつ見てくと、
wgetはWebページを取得するコマンド。
-qオプションで実行結果をスクリーンに表示しないようにします。
続いて-Oオプションで、取得したWebページを/dev/nullに出力します。
/dev/nullはLinuxの”ブラックホール”。ここに移動したファイルは消されます。
MyDNS.JPは、正しいMaster IDとパスワードでログインURLにアクセスがあると、このアクセスをIPアドレスの更新とみなします。取得したログインページを何かに使うことはありません。なので/dev/nullに捨てます。
そして最後がログイン用のURL。MASTER_IDとPASSWORDの部分は、ご自身のMaster IDとパスワードに置き換えてください。
編集が終わったら:wqと入力してvimを終了します。
$ chomod 700 ./update_ddns.sh
として、現在ログイン中のユーザーにのみフルアクセス(閲覧・編集・実行の権限)を許可します。
これで更新ファイルができました。一度確認してみましょう。
$ ./update_ddns.sh
としてこのファイルを実行してから数分後に、クライアントPCからMyDNS.JPの”LOG INFO”のページを開いてみてください。
このように、”IPv4 UPDATE”と”DNS UPDATE”という文字があれば、更新に成功しています。
これでIPアドレスとドメイン名が結びつきました。ドメイン名をWebブラウザーに入力すると、MyDNS.JPのDNSサーバーがIPアドレスを返してくれるようになります。
自動更新
ただし、先述の通り、DDNSでは定期的にドメイン名とIPアドレスを結びつけてやる必要があります。
$ crontab -e
として、ファイル末尾に移動。aキーを押して追記モードに入ります。
改行して以下の内容をコピペ。
0 */3 * * * ./update_ddns.sh
これで3時間に1回、MyDNS.JPに現在のIPアドレスが通知されます。
以上でDDNSの設定はおしまいです。
次回予告
次回、最終回!
ついにサーバーMacにNextcloudをインストールし、LAN内外からアクセスできるようにファイアーウォールを設定します。