これまでの設定では、外部からアクセスしてもらうには自分のグローバルIPアドレスを相手に教える必要がある。
ただし、一般的にグローバルIPアドレスは変動するものなので、ブックマークして貰っても次はアクセスできなかったりグローバルIPアドレスを調べなおしたりする必要が出てくる。
仮にこのウェブサーバを常時起動してウェブサイトやブログなどやりたい場合、気に入られてブックマークしてもらってもアドレスが変動してしまうと終わりだ。
そこで今回は、無料のDDNSサービスを利用してドメインを設定する。
今回の作業を終えると、今までの変動しうる不安定なアドレスとは違い、「https://vivibit.net/」のような変動することのないアドレス(ドメイン)でアクセスして貰えるようになる。
ブックマークしてもらっても安心だし、自分自身も覚えやすくて大変に便利だ。
続き物なので趣旨や準備などを確認したい場合はこちらを先に読んで欲しい。
VMware + Debian jessieでウェブサーバ その1
ドメインの取得
例えばうちの「vivibit.net」のような独自ドメインの取得は有料で、ドメインにもよるが安いもので年間1,000円程度の維持費がかかる。
常時稼動してウェブサイトやブログをはじめるのであれば独自ドメインを取得しても良いと思うが、今回は知人へのファイル配布程度の用途を前提としているので無料のDDNSサービスで無料のサブドメインを貸与してもらう。
DDNSのかなりザックリした説明
ドメインを入力して指定されたサーバにたどり着けるのは、DNSサーバというものが「このドメインはこのグローバルIPアドレス」というのを記録していて教えてくれるからだ。
これまで何度か一般家庭ではグローバルIPアドレスは変動するという事を書いたが、もしもグローバルIPアドレスが変更されてしまった場合、「DNSサーバがドメインと紐付けてるグローバルIPアドレス」が実際のグローバルIPアドレスとずれて迷子になってしまう。
そういった事を阻止するために、「グローバルIPアドレスが変更された際に動的にDNSサーバに登録をする仕組み」をDDNSという。
無料DDNSサービスを選ぶ
vivibit.example.com のように好きな文字列でサブドメインを貸与してくれる無料DDNSサービスがある。
古から有名な ddo.jp と dip.jp があるが、dip.jpの方は以前(と言っても、もう6年以上前か・・・)何度かdip.jpのサイト自体が落ちていて新しいグローバルIPアドレスを登録できないという罠があったので、今回はddo.jpを使うものとする。
ddo.jpは9ヶ月以降は広告表示しないと使えなくなるみたいなので、やっぱりdip.jpとして説明する。
example.ddo.jp のようなddo.jpのサブドメインしか選べないddo.jpとは違い、dip.jpの方はdip.jp / fam.cx / jpn.ph / moe.hm / myhome.cx / orz.hm のドメインから選べるのでそこは嬉しい。
どちらにせよ新しいグローバルIPアドレスを登録しなおすのは簡単だし、本記事で書く自動更新する設定は同じなので、基本的に好きな方を選んで欲しい。
追記
DiCEを使ってホストOSでグローバルIPアドレスの自動通知(更新)を行う場合、以下のドメインから選ばないと設定項目が無いみたい。
サブドメインを取得する
dip.jpの新規ユーザー登録にアクセスする。
利用規約が表示されるのでよく読み、サービスを申し込む。SSLの方が良いだろう。
ユーザ登録画面では求められた情報を入力するだけ。
どうやらパスワードに記号を設定するとエラーが出る気がするのでそこだけ注意しよう。
登録が完了したらそのままログインする。
「ドメイン名:(取得したサブドメイン) のIPアドレスは現在 0.0.0.0 に設定されています。」とあるので、そのままの流れでアドレスの更新を行う。
グローバルIPアドレスが設定された風なら一旦閉じる。
なお反映までには少々時間がかかる。
グローバルIPアドレスの変更を自動的に通知(更新)する
グローバルIPアドレスが変更された場合DNSサーバに新しいIPアドレスを登録する必要があるが、dip.jpにアクセスすればトップページでユーザ名(サブドメイン名)とパスワードを入れるだけで更新できる。
しかし、自分のグローバルIPアドレスが変わったなんて気づかない場合も多い。
なので自動的に更新する設定を書く。
DiCEを利用する(ホストOS側)
DiCEというdip.jpやddo.jpにも対応した自動更新ツールがある。
グローバルIPアドレスの変更を監視してくれ、変更があると自動的に新しいIPアドレスを登録してくれると言うわけだ。
今回は必要な時にVMを起動するという使い方になるのでDiCEの設定を書くが、常時起動する場合はゲスト側(Debian jessie)の方で監視スクリプトを回した方が良いだろう。
DiCEのダウンロードとインストール
DiCEのダウンロードページにアクセスして、「DiCE for Windows
Version 1.59」のMSIパッケージでもダウンロードすればよいだろう。
次にダウンロードしたパッケージ(dice1596.msi)を実行してインストールを行う。
特に変更すべきところはない。
終わったらDiCEを起動する。
グローバルIPアドレスが引けているかの確認
DiCEを起動したら自身のグローバルIPアドレスが以下のグレーで囲った部分に表示されているかを確認する。
まず間違いなく取得されているだろうが、もしダメだったらオプション→環境設定→IPアドレス監視タブからテストを行い、更に取得できないようであれば指定したURLの表示内容から抽出する で良い。
URLにはIPを表示してくれるサービスのものを利用すればよいが、困ったらhttps://vivibit.net/chkip.phpを使っても良い。
(安定して引けるかは保障しない)
DiCEの初期設定
オプション→環境設定
一般タブの 「最小化で起動する」と「ログを作成する」にチェックをつけておくだけ。
イベントを作成する
イベント→追加 から
説明欄にdip.jpとか適当に設定名を入れておく。
ホスト名とユーザ名はdip.jpでは同一のもので、サブドメインの文字列と同じ。
このあたりは登録メールアドレスにメールで届いてるので、忘れていたら見ながらやるのが良い。
ドメインのところは登録したドメインを選択する。
残りは以下の画像の通りにやるのが無難な設定だと思う。
設定が完了したら保存する。
その他
ショートカットをスタートアップに放り込んでおくことで、最小化オプションをつけていると邪魔にならないところで勝手に起動している。
perlスクリプトを利用する(ゲストOS)
使えるのか検証してはいないが、自動更新用のperlスクリプトが公開されている。
あとがき
これを読んでいる段階でDNSが反映してるかはともかく、今回の作業でグローバルIPアドレスではなくドメインでアクセスできるようになった。
また、グローバルIPアドレスが変化しても良いように自動設定も出来たと思う。
かなりの眠気とともに書いているので何かおかしかったらコメントを。
コメント