コンテンツにスキップ

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

提供: ArchWiki
削除された内容 追加された内容
Shota (トーク | 投稿記録)
英語版に併せてセクション構成を変更
 
(他の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 対応のサービスの一部を以下に挙げます。examples や protocols にはさらに多くのプロバイダが載っています。

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 を更新できる場合、cron や systemd/タイマーなどのツールを利用して更新を自動化することができます。

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 レコードを更新することができます。