動的 IP アドレスにドメイン名を割り当てるダイナミック DNS についてまとめています。

固定 IP を割り当てていない回線に対し 🎈 ドメイン を割り当て、
そのドメインの URL を公開する事で、利用者は可変する IP アドレスを意識せず、
Web サイトなどを運営しているサーバを参照できるようにする仕組みです。
例えば個人用途での小規模な Web サイトや 🎈 BBS などで、
パソコンをサーバにしての運用時に使用できます。

主に光回線へ移行されてきているため、切断→再接続による IP アドレスの変更は
ADSL より少なくなってきていますが、変更に伴う一時的な接続不可が発生します。

アクセスが多大になる事を期待できる場合、
特に安定した参照を求める企業などの Web サイトは固定 IP の取得・運用や
それなりのサーバ・クラウドサービスを使う事を強くおすすめします。
運営者もサーバは BBS が主な用途で、
一般公開の Web サイト・ブログは外部 Web サービス+CDN で運用しています。

また、メールサーバは配信に失敗する受信メールが発生する恐れがあり、
運用をおすすめしません。

サーバ(として運用するパソコン)はセキュリティ的な攻撃を受けます。
ほったらかしにしていると、急にサーバが使えなくなったり、
近年はネット上の他サービスへ攻撃するようにもなりえます。


目次


バッチファイルで IP アドレスを更新する

Windows 10 にも標準で cURL が入るようになりました。
(curl.exe。curl は Invoke-RestMethod のエイリアスなので動作が異なります)
バッチファイルで定期的に cURL を用いて IP 更新 API を実行する事ができます。
バッチファイルにする事で常時画面に状態を表示して、確認できるようにします。
サーバと一緒に画面表示しておく場合はこの方法が簡単で便利です。
わざわざ専用のクライアントをインストールして実行する必要はありません。
この方法を用いて、cron 動作の代わりとして定期的に
特定コマンドを実行するようにできます。

@echo off
setlocal

title Task 900 seconds

:loop

echo.
echo %DATE% %TIME%

curl.exe -4 -k "https://(APIコマンド)"
echo.

timeout /t 900 /nobreak >nul

goto loop

コマンド実行から次のコマンド実行まで約 15 分待ちする例です。
? を含むコマンドの場合は必ず "~" で囲んで下さい。
echo. で改行のみの出力です。必要に応じて追加します。
複数 API コマンドを入れる場合は rem や echo を追加すると便利でしょう。

……えっ、IP アドレスが必要ですか!!?
ページ運営者は IP アドレスを送る必要がない API を使っているのですが、
(送信元の IP アドレスをヘッダなどで得られるので、省略できる API があります)
IP アドレスを含めるのが必須な API を用いている場合は API 参照前に次を加えます。

for /f "usebackq" %%I in (`curl.exe -4 -s https://icanhazip.com/`) do set ipv4=%%I
for /f "usebackq" %%I in (`curl.exe -6 -s https://icanhazip.com/`) do set ipv6=%%I

これで %ipv4% で IPv4、 %ipv6% で IPv6 を入れる事ができます。


ルータで対応している場合があります

ブロードバンドルータでダイナミック DNS が対応している場合があります。
まずはルータにダイナミック DNS 機能があり、それが使えるかを確認して下さい。
機能が使える場合、パソコン・サーバ側で
ダイナミック DNS の設定をする必要がなくなります。

IPv6 の高速通信を目的に IPoE 接続をしている場合は設定ができません。
PPPoE 接続にする必要があります。
この場合、ダイナミック DNS だけではなく、NAT 転送も設定できないでしょう。

 TP-LinkワイヤレスルータでTP-LINK DDNSを設定するには?(新しいロゴ)| IP-Link

TP-LINK DDNS としてドメイン ●●●.tplinkdns.com を提供していますが、
運営者の経験でとてもレスポンスが悪く、使用をおすすめできません。
他サービスでの選択肢は DynDNS は現在有料サービスのため、
必然的に無料で使用できる  No-IP となるでしょう。


Duck DNS

 Duck DNS

無料で提供されています。(Patreon を用いて寄付が募られています)
基本的なダイナミック DNS 機能しか提供していませんが、十分な人も多いでしょう。
ログイン認証は各サービスを連携できます。GitHub・Google・Twitter などに対応します。
特にシンプルな機能で提供されていて、使いやすい・導入しやすいのが特徴です。

duckdns.org は 🎈 Public Sufflx List に登録されていますので、
SSL 証明書は 🎈 Let’s Encrypt を適用して問題なく使用できるでしょう。

提供ドメインは 2021年5月現在 サブドメイン.duckdns.org のみです。
上層に Amazon Web Service が使われていて、IPv4 しか提供されていないため、
更新できるのは A ゾーン IPv4 のみとなっています。


Dynu

 Dyuu

有料サービスもありますが、ダイナミック DNS は無料で使用可能です。
無料プランの場合、次のドメインのサブドメインを使用できます。

accesscam.org camdvr.org casacam.net ddnsfree.com ddnsgeek.com freeddns.org giize.com gleeze.com kozow.com loseyourip.com mywire.com ooguy.com theworkpc.com webredirect.org

サブドメインからに更にサブドメインを設定する事が可能で、ワイルドカード * も可能です。
普通にレコードを設定しての使用もできますので、幅広い用途ができます。
更にサブドメインは 🎈 Public Sufflx List に登録されていますので、
🎈 Let’s Encrypt のレート制限は独自ドメイン同等になります。
サブドメインの代わりに独自ドメインを設定しての使用も可能です。
サブドメイン・独自ドメインを含めて、無料プランでは最大 4 ホストです。
ネームサーバは 1 ヶ所東京に設置されています。

ログイン後の各種操作が行えるコントロールパネルは
ヘッダ、検索フォームの右にある アイコンです。


FreeDNS(freedns.afraid.org)

 FreeDNS
🎈 FreeDNS(freedns.afraid.org)| ふうせん🎈 FU-SEN

個人の人がドメインを登録し、他の人がそのサブドメインを使用できます。
こちらのサービスでもダイナミック DNS が提供されています。
ログイン後の左上 Dynamic DNS ページです。

http の代わりに https が使用できます。
更新する(サブ)ドメインは 🎈 A レコード にしておく必要があります。

基本的な API コマンドが表示されていますが、
ページ下部に(サブ)ドメインが一覧され、
この Direct URL の URL を代わりに使用する事ができます。

送信時のレスポンスで次のメッセージがエられる事が通常になります。

ERROR: Address ●.●.●.● has not changed

ERROR とありますが、IP アドレスに変更がない場合のレスポンスなので、
これで正常な動作です。


HelioHost

 HelioHost
🎈 HelioHost | ふうせん🎈 FU-SEN

無料提供のホスティング(レンタルサーバ)サービスです。
cPanel を採用し、cPanel の一機能として Dynamic DNS があります。
サーバ契約が サブドメイン.heliohost.us として、更にサブドメインをつけた
サブドメイン.サブドメイン。heliohost.us で参照可能にできます。
また、独自ドメインも設定可能で、これにサブドメインをつけた形式も可能です。

設定すると参照する専用の URL(Webcall)が作成されます。これを参照するだけです。
IP アドレスは参照した機器の IP アドレスで有効になりますが、
HelioHost が IPv4 設定のため、IPv4 の A レコードのみが有効になります。

HelioHost は基本無料なので高負荷で不安定になる事がありますが、
これは Web などで IP 更新の URL はこの影響を受けますが、
ネームサーバは物理的に異なるサーバのため、設定したドメインは影響を受けません。


No-IP

 No-IP

比較的日本国内・海外でもある程度利用者がいるサービスです。
完全無料で登録し、運用できます。
ただし、メールが 20 日前後で送られ、その対応で期限延長が必要です。
それを行わないと、期限切れで接続ができなくなります。

無料使用ができ、マルウェアなどで悪用がある状況のため、SNS の投稿に制限があり、
特に Web サイトなどでの記載はおすすめできません。

2021年2月現在、使用できるドメインは次の通りです。

3utilities.com bounceme.com ddns.net ddnsking.com freedynamicdns.net freedynamicdns.org gotdns.ch hopto.org myddns.me myftp.biz myftp.org myvnc.com onthewifi.com redirectme.net servebeep.com serveblog.net servecounterstrike.com serveftp.com servegame.com servehalflife.com servehttp.com serveirc.com serveminecraft.net servemp3.com servepics.com servequake.com sytes.net viewdns.net webhop.me zapto.org

なお no-ip および noip が付くドメインは
2016年10月31日をもって新規登録できなくなっています。
まだ運用している場合でも、削除・期限切れ後は将来的に使用できなくなります。

 Changes to Hostname Creation for No-IP Branded Domains


ドメインを割り当てる

無料のサービスで提供されているドメインをそのまま公開するのはおすすめできず、
独自ドメインを設定して運用するのがおすすめです。

サブドメインで設定する場合(www を含めます)、CNAME で設定できます。

🎈 ネームサーバ  CNAME | ふうせん🎈 FU-SEN

サブドメイン 種類 値
サブドメイン名 CNAME ダイナミック DNS のドメイン

ダイナミック DNS で発行したドメインが bbs.example.net.eu.org 、
実際に使用したいドメインが bbs.example.net の場合は次となります。

サブドメイン 種類 値
bbs.example.net CNAME bbs.example.net.eu.org

bbs.example.net は example.net 内で設定する場合、
bbs となるネームサーバサービスが多いでしょう。

サブドメインなしはネームサーバサービスにより ANAME ALIAS があり、
これで設定できる場合があります。🎈 Cloudflare は CNAME で設定可能です。
ネームサーバサービスにより、これが使えない場合があります。
というのも、この仕組みはネームサーバサービスが値に指定したネームサーバを参照し、
A・AAAA IP アドレス で返すようにしているためです。

🎈 ネームサーバ  ANAME・ALIAS (CNAME) | ふうせん🎈 FU-SEN

サブドメイン 種類 値
@・空白・ドメイン名 CNAME ダイナミック DNS のドメイン
@・空白・ドメイン名 ALIAS ダイナミック DNS のドメイン
@・空白・ドメイン名 ANAME ダイナミック DNS のドメイン

Hurricane Electric Free DNS (dns.he.net)

 Free DNS | Hurricane Electric

IPv6 Tunnel Broker が有名ですが、無料でネームサーバサービスを提供していて、
登録したドメインに対しダイナミック DNS を実現する事ができます。
アカウントに対して 50 ドメインまで管理可能です。

ダイナミック DNS での使用方法はログインをしていない時に参照できます。
Google Chrome であれば、シークレット ウインドウ を使うと
ログインしていない状態で素早く表示できるので便利です。


Cloudflare

 Cloudflare
🎈 Cloudflare | ふうせん🎈 FU-SEN

無料プランでドメインをサイト登録し CDN 機能を使用できますが、
これに連動してネームサーバ機能も使用できます。
API が提供されていて、レコードを更新する事で、
ダイナミック DNS を実現する事が可能です。
Cloudflare で独自ドメインを管理している場合はこの方法も検討できるでしょう。\

http 参照用途であれば CDN を有効にできるので、レスポンスを向上できます。
また Cloudflare の証明書を適用し、SSL 化する事が可能です。
一方 IP アドレスが Cloudflare サーバになるので、
Web 以外のサーバ運用を行う場合は、CDN を無効にしてネームサーバのみにして下さい。
(該当のレコードで  をグレー表示にします)

レコード更新には IP アドレスの更新が必須となるため、
IP アドレスを取得する手段が必要になります。

まともな使用にはトークンの発行が推奨されます。