「ダイナミック DNS」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版に併せてセクション構成を変更)
 
(他の1人の利用者による、間の3版が非表示)
1行目: 1行目:
[[Category:Domain Name System]]
+
[[Category:ドメインネームシステム]]
 
[[en:Dynamic DNS]]
 
[[en:Dynamic DNS]]
 
'''Dynamic DNS''' あるいは '''DDNS''' はインターネット上の絶えず変化する IP アドレスを指し示す [[:カテゴリ:Domain Name System|DNS]] をリアルタイムに更新する手法です。ダイナミック DNS は固定 IP が存在しないリソースに恒久的なドメイン名を割り当てるのに使われます。DDNS を使用するには、DDNS プロバイダで登録を行なって、さらに、IP アドレスが変わったときにプロバイダに新しい IP を通知するように自動更新ツールを設定する必要があります。
 
'''Dynamic DNS''' あるいは '''DDNS''' はインターネット上の絶えず変化する IP アドレスを指し示す [[:カテゴリ:Domain Name System|DNS]] をリアルタイムに更新する手法です。ダイナミック DNS は固定 IP が存在しないリソースに恒久的なドメイン名を割り当てるのに使われます。DDNS を使用するには、DDNS プロバイダで登録を行なって、さらに、IP アドレスが変わったときにプロバイダに新しい IP を通知するように自動更新ツールを設定する必要があります。
9行目: 9行目:
   
 
== 更新用クライアントツール ==
 
== 更新用クライアントツール ==
  +
  +
いくつかの DDNS プロバイダはクライアントツールを必須とはしておらず、[[cURL]] で更新することも可能であることは気に留めておいて下さい。
  +
  +
=== 複数サービスに対応したクライアント ===
  +
  +
* {{App|[[#ddclient|ddclient]]|多くのDDNSサービスのアカウントのDDNSエントリを更新できます。|https://github.com/ddclient/ddclient|{{Pkg|ddclient}}}}
  +
* {{App|ddnsc|Pythonで書かれたシンプルで軽量なクライアント。|https://github.com/shyaminayesh/ddnsc|{{AUR|ddnsc}}}}
  +
* {{App|inadyn|SSL/TLSをサポートしたDDNSクライアント。|https://troglobit.com/projects/inadyn/|{{Pkg|inadyn}}}}
  +
* {{App|inadyn-mt|inadyn が元となったシンプルなDDNSクライアント。|http://inadyn-mt.sourceforge.net/|{{AUR|inadyn-mt}}}}
  +
* {{App|ndyndns|DynDNS と Namecheapをサポートしています。|https://github.com/niklata/ndyndns|{{AUR|ndyndns}}}}
  +
  +
=== 特定のサービスの為のクライアント ===
  +
  +
* {{App|duckdns|systemd を用いて DuckDNS.org のエントリを更新するクライアント。|https://www.duckdns.org/|{{AUR|duckdns}}, {{AUR|duckdns-ipv6}}}}
  +
* {{App|hetzner_ddns|Hetzner DNS のためのDDNS デーモン。|https://github.com/filiparag/hetzner_ddns|{{AUR|hetzner_ddns}}}}
  +
* {{App|noip|no-ip.com サービスのためのDDNS クライアント。|3=https://www.no-ip.com/downloads.php?page=linux|4={{AUR|noip}}}}
  +
* {{App|petrified|freedns.afraid.org を更新するための bash クライアント。|https://gitlab.com/troyengel/petrified|{{AUR|petrified}}}}
  +
   
 
=== ddclient ===
 
=== ddclient ===
15行目: 33行目:
   
 
インストールした後、デフォルトの設定ファイル {{ic|/etc/ddclient/ddclient.conf}} を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら {{ic|ddclient.service}} を[[起動]]・[[有効化]]してください。
 
インストールした後、デフォルトの設定ファイル {{ic|/etc/ddclient/ddclient.conf}} を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら {{ic|ddclient.service}} を[[起動]]・[[有効化]]してください。
  +
  +
{{ic|-noquiet}} と {{ic|-debu}} オプションを付けて実行することで設定をテストできます:
  +
  +
# ddclient -daemon=0 -noquiet -debug
   
 
ddclient 対応のサービスの一部を以下に挙げます。[https://sourceforge.net/p/ddclient/code/HEAD/tree/trunk/sample-etc_ddclient.conf examples] や [https://sourceforge.net/p/ddclient/wiki/protocols/ protocols] にはさらに多くのプロバイダが載っています。
 
ddclient 対応のサービスの一部を以下に挙げます。[https://sourceforge.net/p/ddclient/code/HEAD/tree/trunk/sample-etc_ddclient.conf examples] や [https://sourceforge.net/p/ddclient/wiki/protocols/ protocols] にはさらに多くのプロバイダが載っています。
26行目: 48行目:
 
! 設定のノート
 
! 設定のノート
 
! 他のツール
 
! 他のツール
  +
|-
  +
! [http://now-dns.com/ Now-DNS]
  +
| 無料 || A, AAAA || 無制限 || {{ic|dyndns2}} プロトコルを使用、サーバー: {{ic|now-dns.com/update}} ||
 
|-
 
|-
 
! [http://www.changeip.com/ ChangeIP]
 
! [http://www.changeip.com/ ChangeIP]
 
| 無料あるいは有料 || A, AAAA, CNAME, MX, サブドメイン || 7つまで無料 || ||
 
| 無料あるいは有料 || A, AAAA, CNAME, MX, サブドメイン || 7つまで無料 || ||
|-
 
! [http://www.dnsdynamic.org/ DNSdynamic]
 
| 無料 || || || [https://www.dnsdynamic.org/api.php 例] ||
 
 
|-
 
|-
 
! [https://www.duckdns.org/ Duck DNS]
 
! [https://www.duckdns.org/ Duck DNS]
44行目: 66行目:
 
! [http://www.noip.com/ No-IP]
 
! [http://www.noip.com/ No-IP]
 
| 無料あるいは有料 || || 3つまで無料、有料で25以上 || {{ic|noip}} プロトコル、{{ic|dynupdate.no-ip.com}} サーバーを使用 || {{aur|noip}}
 
| 無料あるいは有料 || || 3つまで無料、有料で25以上 || {{ic|noip}} プロトコル、{{ic|dynupdate.no-ip.com}} サーバーを使用 || {{aur|noip}}
|-
 
! [http://now-dns.com/ Now-DNS]
 
| 無料 || A, AAAA || 無制限 || {{ic|dyndns2}} プロトコルを使用、サーバー: {{ic|now-dns.com/update}} ||
 
 
|-
 
|-
 
! [https://www.nsupdate.info/ nsupdate.info]
 
! [https://www.nsupdate.info/ nsupdate.info]
57行目: 76行目:
 
==== 外部ウェブサイトから IP アドレスを確認 ====
 
==== 外部ウェブサイトから IP アドレスを確認 ====
   
ddclient が IP アドレスを検出できない場合、[http://whatismyip.org/ whatismyip.org] などの外部ウェブサイトから IP アドレスを取得するように ddclient を設定できます。設定ァイルに以下よう追加してください:
+
ddclient が IP アドレスを検出できない場合、[http://checkip.dyndns.org checkip.dyndns.org] などの外部ウェブサイトから IP アドレスを取得するように ddclient を設定できます。トでは {{ic|use=web]} を指定した場合アドレスが利用されます。また、IPを確認するサービスへの頻繁なアクセスを避けるため、確認までの期間を延すことが推奨れてます:
   
 
{{hc|/etc/ddclient/ddclient.conf|2=
 
{{hc|/etc/ddclient/ddclient.conf|2=
  +
daemon=900
# use whatismyip.org to determine IP address
 
  +
# web status page から IP アドレスを取得
 
use=web
 
use=web
web=whatismyip.org
 
 
}}
 
}}
  +
  +
他の IP 確認サービスを {{ic|web}} オプションで設定する事もできます:
  +
  +
{{hc|/etc/ddclient/ddclient.conf|2=
  +
daemon=900
  +
# web status page から IP アドレスを取得
  +
use=web, web=myonlineportal.net/checkip
  +
}}
  +
  +
==== IPv6 アドレスを決めるためにスクリプトを使う ====
  +
  +
ddclient は時折、IPv6 アドレスの取得を間違えるか失敗します。しかし、外部のウェブサイトの代わりに ローカルに IPv6 を知ることができます。以下のスクリプトが使えます:
  +
  +
{{hc|/usr/bin/get-ip|2=
  +
<nowiki>
  +
#!/bin/bash
  +
/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
  +
</nowiki>
  +
}}
  +
  +
このスクリプトを使うように ddclient を設定するには:
  +
  +
{{hc|/etc/ddclient/ddclient.conf|2=
  +
# obtain IP address from script
  +
use=cmd,cmd='/usr/bin/get-ip'
  +
}}
  +
   
 
==== ネットワークが立ち上がった後に ddclient を起動 ====
 
==== ネットワークが立ち上がった後に ddclient を起動 ====
74行目: 120行目:
 
Wants=network-online.target
 
Wants=network-online.target
 
}}
 
}}
 
{{ic|network-online.target}} に追加の設定が必要かもしれません。[https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget#cutthecraphowdoimakenetwork.targetworkforme] を参照してください。
 
 
=== 他のツール ===
 
 
複数のプロバイダで使用することができる他の DDNS 更新ツールとして {{AUR|inadyn-mt}} ([https://sourceforge.net/projects/inadyn-mt 対応しているプロバイダ]) と {{AUR|ndyndns}} (DynDNS と Namecheap が対応) が存在します。
 
   
 
== 他のプロバイダ ==
 
== 他のプロバイダ ==

2024年8月15日 (木) 13:41時点における最新版

Dynamic DNS あるいは DDNS はインターネット上の絶えず変化する IP アドレスを指し示す DNS をリアルタイムに更新する手法です。ダイナミック DNS は固定 IP が存在しないリソースに恒久的なドメイン名を割り当てるのに使われます。DDNS を使用するには、DDNS プロバイダで登録を行なって、さらに、IP アドレスが変わったときにプロバイダに新しい IP を通知するように自動更新ツールを設定する必要があります。


ルーター

DDNS を必要とするデバイスがルーターを通している場合、まずルーターだけで DDNS サービスを更新することができないか確認してください。使用できるサービスは限られますが、ルーターを使うことにはメリットが複数存在します: セットアップが簡単であり、メンテナンスの必要がほとんどありません。そしてダウンタイムがなくなります (ルーターが落ちた場合、インターネットに接続自体ができなくなります)。

更新用クライアントツール

いくつかの DDNS プロバイダはクライアントツールを必須とはしておらず、cURL で更新することも可能であることは気に留めておいて下さい。

複数サービスに対応したクライアント

  • ddclient — 多くのDDNSサービスのアカウントのDDNSエントリを更新できます。
https://github.com/ddclient/ddclient || ddclient
  • ddnsc — Pythonで書かれたシンプルで軽量なクライアント。
https://github.com/shyaminayesh/ddnsc || ddnscAUR
  • inadyn — SSL/TLSをサポートしたDDNSクライアント。
https://troglobit.com/projects/inadyn/ || inadyn
  • inadyn-mt — inadyn が元となったシンプルなDDNSクライアント。
http://inadyn-mt.sourceforge.net/ || inadyn-mtAUR
  • ndyndns — DynDNS と Namecheapをサポートしています。
https://github.com/niklata/ndyndns || ndyndnsAUR

特定のサービスの為のクライアント

  • duckdns — systemd を用いて DuckDNS.org のエントリを更新するクライアント。
https://www.duckdns.org/ || duckdnsAUR, duckdns-ipv6AUR
  • hetzner_ddns — Hetzner DNS のためのDDNS デーモン。
https://github.com/filiparag/hetzner_ddns || hetzner_ddnsAUR
  • noip — no-ip.com サービスのためのDDNS クライアント。
https://www.no-ip.com/downloads.php?page=linux || noipAUR
  • petrified — freedns.afraid.org を更新するための bash クライアント。
https://gitlab.com/troyengel/petrified || petrifiedAUR


ddclient

ddclient は多数の DDNS サービスに対応しているため、ルーターが使えない場合は DDNS を更新するための推奨ツールとなります。ddclient は systemd にも対応しています。

インストールした後、デフォルトの設定ファイル /etc/ddclient/ddclient.conf を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら ddclient.service起動有効化してください。

-noquiet-debu オプションを付けて実行することで設定をテストできます:

# ddclient -daemon=0 -noquiet -debug

ddclient 対応のサービスの一部を以下に挙げます。examplesprotocols にはさらに多くのプロバイダが載っています。

ddclient に対応しているサービス
サービス名 費用 利用可能なレコード ホストネーム数 設定のノート 他のツール
Now-DNS 無料 A, AAAA 無制限 dyndns2 プロトコルを使用、サーバー: now-dns.com/update
ChangeIP 無料あるいは有料 A, AAAA, CNAME, MX, サブドメイン 7つまで無料
Duck DNS 無料 duckdnsAUR
Dynu 無料あるいは有料 4つまで無料、有料で500まで サンプル
FreeDNS 無料あるいは有料 CNAME, A, AAAA, MX, NS, TXT, LOC, RP, HINFO, SRV 5つまで無料 afraid-dyndns-uvAUR, petrifiedAUR
No-IP 無料あるいは有料 3つまで無料、有料で25以上 noip プロトコル、dynupdate.no-ip.com サーバーを使用 noipAUR
nsupdate.info 無料かつオープンソース A, AAAA dyndns2 プロトコルを使用 inadyn-forkAUR
ノート: no-ip の無料ユーザーは30日ごとにドメインを手動で確認する必要があります。有料ユーザーはドメイン確認が不要です。詳しくは Why is My Hostname Pending Deletion? を参照。

外部ウェブサイトから IP アドレスを確認

ddclient が IP アドレスを検出できない場合、checkip.dyndns.org などの外部ウェブサイトから IP アドレスを取得するように ddclient を設定できます。デフォルトでは {{ic|use=web]} を指定した場合にこのアドレスが利用されます。また、IPを確認するサービスへの頻繁なアクセスを避けるために、確認までの期間を延すことが推奨されています:

/etc/ddclient/ddclient.conf
daemon=900
# web status page から IP アドレスを取得
use=web

他の IP 確認サービスを web オプションで設定する事もできます:

/etc/ddclient/ddclient.conf
daemon=900
# web status page から IP アドレスを取得
use=web, web=myonlineportal.net/checkip

IPv6 アドレスを決めるためにスクリプトを使う

ddclient は時折、IPv6 アドレスの取得を間違えるか失敗します。しかし、外部のウェブサイトの代わりに ローカルに IPv6 を知ることができます。以下のスクリプトが使えます:

/usr/bin/get-ip
#!/bin/bash
/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

このスクリプトを使うように ddclient を設定するには:

/etc/ddclient/ddclient.conf
# obtain IP address from script
use=cmd,cmd='/usr/bin/get-ip'


ネットワークが立ち上がった後に ddclient を起動

ddclient で IP を更新できない場合、おそらくネットワークが立ち上がる前に ddclient のプロセスが起動しているのが原因です。修正するには、ユニットファイルを編集して network-online.target に依存するようにしてください:

# systemctl edit ddclient.service
[Unit]
After=network-online.target
Wants=network-online.target

他のプロバイダ

以下の DDNS プロバイダは ddclient に対応していないため、特殊なツールを使ったりカスタムスクリプトで IP を更新する必要があります。コマンドラインで IP を更新できる場合、cronsystemd/タイマーなどのツールを利用して更新を自動化することができます。

duiadns

Duiadns.org は無料のサービスです。duiadnsAUR[リンク切れ: アーカイブ: aur-mirror] で自動化が可能。

FreeDns.io

FreeDns.io は無料で A, AAAA, DNS レコードを提供します。CNAME, TXT, MX レコードはプレミアムメンバーになる必要があります。HTTP API を利用して IP を更新することができます (1時間あたり60回までの制限あり)。複数のサンプルスクリプト が用意されています。

Now-DNS

Now-DNS.com は簡単にセットアップができる無料サービスです。

System-NS

System-NS はコマンドラインによる更新ができる無料サービスです。公式のドキュメント を参照してください。

Loopia.se

ネームサーバーとして loopia.se を使う場合、公式ドキュメント に書かれているように curl で DNS レコードを更新することができます。